C#如何获取listview选中项

C#如何获取listview选中项,第1张

选中项的文本值:thislistView1SelectedItems[0]Text;

选中项的子项的文本值

thislistView1SelectedItems[0]SubItems[0]Text;(SubItems[0]表示选中项的第一个子项,第二个子项就是SubItem[1],第三个就是SubItems[2]以此类推)

首先写个ListView 的数据适配器,抽离出来,写一个对象,用来设置listView 每条Item 的 的对象,可以采用ConvertView 设置setTag 将View 房子tag中,可以通过ListvIEW getChildAt()getTag 取得你想要的对象,设置参数,还是铁代码吧!

getView:

ItemObj viewHolder = null;

if(convertView == null){

viewHolder = new ItemObj();

convertView = mLayoutInflateinflate(Rlayoutsimple_item, null);

viewHoldermSimpleCardName = (TextView) convertViewfindViewById(Ridsimple_name);

viewHoldermIsReTake = (TextView) convertViewfindViewById(Ridsimple_num);

viewHoldermContentNext = (TextView)convertViewfindViewById(Ridstatus);

viewHoldermIsNext = (TextView) convertViewfindViewById(Ridicon_next);

convertViewsetTag(viewHolder);

}else{

viewHolder = (ItemObj) convertViewgetTag();

}

PhotoList aPotoLists = (PhotoList) getItem(position);

if(aPotoLists!= null){

viewHoldermSimpleCardNamesetText(aPotoListsphotoName);

if(KeyInMapITFTAKESIMPLE_PIC_TEP!= null){

viewHoldermIsReTakesetText("("+0+")");

if(KeyInMapITFTAKESIMPLE_PIC_TEPequals(aPotoListsphotoName)){

ArrayList<PhotoList> aLists= (ArrayList<PhotoList>) GlobalParameterget(KeyInMapITFTAKESIMPLE_PIC_TEP);

viewHoldermIsReTakesetText("("+aListssize()+")");

}

}

if(aPotoListsstatusequals("0")){

viewHoldermContentNextsetText("未审核");

viewHoldermIsNextsetBackgroundDrawable(mContextgetResources()getDrawable(Rdrawabletask_list_arrows));

}else{

viewHoldermContentNextsetText("已审核");

viewHoldermIsNextsetText("");

convertViewsetOnClickListener(null);

}

}

obj 对象:

public class ItemObj extends Object{

public TextView mSimpleCardName;// 单证的名称

public TextView mIsReTake;// 0 是 单证拍照 1是重拍照片

public TextView mContentNext;// 未提交 未审核等

public TextView mIsNext;// 箭头

public TextView getmSimpleCardName() {

return mSimpleCardName;

}

public void setmSimpleCardName(TextView mSimpleCardName) {

thismSimpleCardName = mSimpleCardName;

}

public TextView getmIsReTake() {

return mIsReTake;

}

public void setmIsReTake(TextView mIsReTake) {

thismIsReTake = mIsReTake;

}

public TextView getmContentNext() {

return mContentNext;

}

public void setmContentNext(TextView mContentNext) {

thismContentNext = mContentNext;

}

public TextView getmIsNext() {

return mIsNext;

}

public void setmIsNext(TextView mIsNext) {

thismIsNext = mIsNext;

}

本地数据就用ormlite-android-419jar和ormlite-core-419jar 可以帮助你管理本地数据,网络上的数据应该要后台做接口让你去调用,adapter可以写一个方法addpendList或者setList,这两个方法都是控制当前adapter持有的list的,adapter可以持有这个list并且给每个item设置布局。

本地得到的数据就是List,如果是服务器的数据就是JSON格式,可以用JSONUtiljava之类的去解析然后获取list,不是list的数据就直接resgetString("name");

ListViewSetAdapter();就可以设置adapter了,然后adapter如果有数据就会填充List

刷新的话是adapternotifyDataSetChanged();

首先listview 在setadapter的时候确定写的是正确的~而且是自定义的。因为通过adapter的getItem函数就可以取到内容了,一定要保证写的没错!

然后就设置listView的点击事件

listViewsetOnItemClickListener(new OnItemClickListener()

{

@Override

public void onItemClick(AdapterView<> parent, View view, int position, long id)

{

String str = (String) ((TextView) view)getText();

//str就是textView上的内容

}

});

如果是一整行的数据,假设现在一行有4个数据吧。

如果要遍历的话用foreach来实现

int

i=0;

StreamWriter

SW=new

StreamWriter(@"D:\testtxt",true);

foreach(ListViewItem

LVI

in

thisListView1Items

)

{

SWWrite(LVISubItem[0]text+"|");

SWWrite(LVISubItem[1]text+"|");

SWWrite(LVISubItem[2]text+"|");

SWWriteLine(LVISubItem[3]text);

}

SWClose();

上面是简单的实现将LivsView中的数据写入一个testtxt的文本文档中,每一行ListView的数据用

|

隔开,每写完一行后,转入下一行进行写数据,知道遍历完整个ListView的数据,此外当一行的数据很多的时候,也可以用SubItemsCounts来得到它的个数,并用循环分别读取,由于为了演示的方便,就直接列出了4个

以上就是关于C#如何获取listview选中项全部的内容,包括:C#如何获取listview选中项、android中怎么获取listview的item的信息、怎样获取显示的listview每个条目的数据等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9324596.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存