如何获取listview的item中的内容
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取listview的item中的内容相关的知识,希望对你有一定的参考价值。
解决方案:重写BaseAdapter,然后自行获取ListView中每行输入的EditText值.大概算法:重写BaseAdapter.getView函数,用一个数组存储EditText中的值,根据position即数组下标,在getView
中动态更新EditText和动态获取EditText中的值.因为ListView中的item是复用的,如果不动态清空或动态获取EditText中
值,就会出现数据紊乱,或者没数据.那么在生成EditText的时候要监控其值的变化.存储下来.
使用方法:
private List<Map<String, Object>> mCheckItemList = new ArrayList<Map<String, Object>>();
mAdapter = new ListEditorAdapter(this, mCheckItemList);
m_lvListView.setAdapter(mAdapter);
直接改变mCheckItemList中的数据,然后调用mAdapter.notifyDataSetChanged();就可以更新ListView的数据
当然,直接从mCheckItemList也可以获得用户在EditText中输入的数据.比较方便
其他:
ListView list= (ListView)findViewById(R.id.list);//获得listview
for (int i = 0; i < list.getChildCount(); i++)
LinearLayout layout = (LinearLayout)list.getChildAt(i);// 获得子item的layout
EditText et = (EditText) layout.findViewById(R.id.et);// 从layout中获得控件,根据其id
// EditText et = (EditText) layout.getChildAt(1)//或者根据位置,在这我假设TextView在前,EditText在后
System.out.println("the text of "+i+"'s EditText:----------->"+et.getText());
参考技术A 在listView里添加数据应该使用了BaseAdapter的子类,也就是某类适配器
而在将ListView中的item的控件和数据相联系是由BaseAdapter中的getView()实现的
一些简单的例子里面不用重写此方法,而比较复杂的item布局就需要去继承BaseAdapter,
然后在getView()方法里去实现
如何将ListView选中的item编号提取出来
刚接触编程可能问的不够专业,就是 选中了listview中的若干项后,如何判断选中了哪些项,并且将这些项目的位置(position?)的值给取出来
参考技术A通过ListView的SelectedItems属性来获取选中的Item集合;
历遍Item集合获取集合中每一行子项的值;
VB.NET代码:
'历遍选中的项集合
For Each item As ListViewItem In ListView1.SelectedItems
'按列索引历遍项中的子项
For i As Integer = 0 To ListView1.Columns.Count - 1
'子项的文本=item.SubItems(i).Text
Next
Next
C#.NET代码:
//历遍选中的项集合
foreach (ListViewItem item in listView1.SelectedItems)
//按列索引历遍项中的子项
for (int i = 0; i < listView1.Columns.Count; i++)
//子项的文本=item.SubItems(i).Text
有android代码吗
追答安卓程序应该是基于JAVA的吧,那玩意完全不会,不好意思!
以上是关于如何获取listview的item中的内容的主要内容,如果未能解决你的问题,请参考以下文章