您现在的位置是:首页» windows系统» winformlistview怎么写入数据,vba listview分页查询

winformlistview怎么写入数据,vba listview分页查询

2023-12-05 09:09:29
今天小编为大家分享Windows系统下载、Windows系统教程、windows相关应用程序的文章,希望能够帮助到大家! 总结了以下几种分列显示二维数组的方法,和大家分享。一、在listview中分列显示distionary的泛型类的内容。Dictionary dic= new Dictionary();

今天小编为大家分享Windows系统下载、Windows系统教程、windows相关应用程序的文章,希望能够帮助到大家!

总结了以下几种分列显示二维数组的方法,和大家分享。

一、在listview中分列显示distionary的泛型类的内容。

Dictionary dic= new Dictionary();

listView1.Clear();//清空先前内容

listView1.View= View.Details;//分列显示

listView1.Columns.Add("编号");

listView1.Columns.Add("姓名");

ListViewItem gg= new ListViewItem(new string[]{ee.Key.ToString(),ee.Value});//这是至关重要的一点。

二、在listview中分列显示二维数组

listView1.Columns.Add("姓名");

listView1.Columns.Add("语文");

listView1.Columns.Add("数学");

listView1.Columns.Add("科学");

listView1.Columns.Add("英语");

string[,] chengji= new string[4, 5];

(二)下面是几种分列显示二维数组的几种方法。

for(int i= 0; i< chengji.GetLength(0); i++)

ListViewItem bb= new ListViewItem(new string[]{ chengji[i, 0], chengji[i, 1], chengji[i, 2], chengji[i, 3], chengji[i, 4]});

上面的listview分列显示还可以用下面的方法。

for(int i= 0; i< chengji.GetLength(0); i++)

cj= new ListViewItem(chengji[i,0]);

cj.SubItems.Add(chengji[i, 1]);

cj.SubItems.Add(chengji[i,2]);

cj.SubItems.Add(chengji[i, 3]);

cj.SubItems.Add(chengji[i, 4]);

如果我们把二维数组转化为一维数组(即结合上面两种方法)还可以用下面的方法分列显示。

string[] sstr= new string[chengji.GetLength(1)];

for(int i= 0; i< chengji.GetLength(0); i++)

for(int j= 0; j< chengji.GetLength(1); j++)

通常这也分为两种方式,一种是设置一个按钮,用户点击即加载。另一种是当用户滑动到底部时自动加载。今天我就和大家分享一下这个功能的实现。

首先,写一个xml文件,moredata.xml,该文件即定义了放在listview底部的视图:

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="加载更多数据"/>

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

可以看到是一个按钮和一个进度条。因为只做一个演示,这里简单处理,通过设置控件的visibility,未加载时显示按钮,加载时就显示进度条。

写一个item.xml,大家应该很熟悉了。用来定义listview的每个item的视图。

<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="schemas.android.com/apk/res/android"

android:layout_width="match_parent"

android:layout_height="match_parent"

android:orientation="vertical">

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="5dp"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_marginTop="5dp"

main.xml就不贴了,整个主界面就一个listview。

直接先看下Activity的代码,在里面实现分页效果。

import android.view.View.OnClickListener;

import android.widget.AbsListView;

import android.widget.AbsListView.OnScrollListener;

import android.widget.ListView;

import android.widget.ProgressBar;

import android.widget.SimpleAdapter;

public class MoreDateListActivity extends Activity implements OnScrollListener{

private SimpleAdapter mSimpleAdapter;

private ArrayList<HashMap<String,String>> list;

//设置一个最大的数据条数,超过即不再加载

private int lastVisibleIndex;

/** Called when the activity is first created.*/

public void onCreate(Bundle savedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

MaxDateNum= 22;//设置最大数据条数

lv=(ListView) findViewById(R.id.lv);

moreView= getLayoutInflater().inflate(R.layout.moredate, null);

bt=(Button) moreView.findViewById(R.id.bt_load);

pg=(ProgressBar) moreView.findViewById(R.id.pg);

//用map来装载数据,初始化10条数据

list= new ArrayList<HashMap<String,String>>();

for(int i= 0; i< 10; i++){

HashMap<String, String> map= new HashMap<String, String>();

map.put("ItemTitle","第"+ i+"行标题");

map.put("ItemText","第"+ i+"行内容");

mSimpleAdapter= new SimpleAdapter(this, list, R.layout.item,

new String[]{"ItemTitle","ItemText"},

new int[]{ R.id.tv_title, R.id.tv_content});

//加上底部View,注意要放在setAdapter方法前

lv.setAdapter(mSimpleAdapter);

lv.setOnScrollListener(this);

bt.setOnClickListener(new OnClickListener(){

pg.setVisibility(View.VISIBLE);//将进度条可见

bt.setVisibility(View.GONE);//按钮不可见

handler.postDelayed(new Runnable(){

loadMoreDate();//加载更多数据

bt.setVisibility(View.VISIBLE);

mSimpleAdapter.notifyDataSetChanged();//通知listView刷新数据

int count= mSimpleAdapter.getCount();

for(int i= count; i< count+ 5; i++){

HashMap<String, String> map= new HashMap<String, String>();

map.put("ItemTitle","新增第"+ i+"行标题");

map.put("ItemText","新增第"+ i+"行内容");

for(int i= count; i< MaxDateNum; i++){

HashMap<String, String> map= new HashMap<String, String>();

map.put("ItemTitle","新增第"+ i+"行标题");

map.put("ItemText","新增第"+ i+"行内容");

public void onScroll(AbsListView view, int firstVisibleItem,

int visibleItemCount, int totalItemCount){

lastVisibleIndex= firstVisibleItem+ visibleItemCount- 1;

//所有的条目已经和最大条数相等,则移除底部的View

if(totalItemCount== MaxDateNum+ 1){

lv.removeFooterView(moreView);

Toast.makeText(this,"数据全部加载完成,没有更多数据!", Toast.LENGTH_LONG).show();

public void onScrollStateChanged(AbsListView view, int scrollState){

//滑到底部后自动加载,判断listview已经停止滚动并且最后可视的条目等于adapter的条目

if(scrollState== OnScrollListener.SCROLL_STATE_IDLE

&& lastVisibleIndex== mSimpleAdapter.getCount()){

// pg.setVisibility(View.VISIBLE);

// bt.setVisibility(View.GONE);

// handler.postDelayed(new Runnable(){

// bt.setVisibility(View.VISIBLE);

// pg.setVisibility(View.GONE);

// mSimpleAdapter.notifyDataSetChanged();

wwW.Xtw.Com.cN系统网专业的PC、手机系统开发下载平台,HarmonyOS系统、安卓、OS、windows电脑重装系统在线下载安装,操作系统平台技术学习,攻略教程,技术交流。

免责声明:本文中引用的各种信息及资料(包括但不限于文字、数据、图表及超链接等)均来源于该信息及资料的相关主体(包括但不限于公司、媒体、协会等机构)的官方网站或公开发表的信息。内容仅供参考使用,不准确地方联系删除处理!

联系邮箱:773537036@qq.com