这个listview关键是看你的adapter是怎么导入的,类似的有个例子你可以参考: listViewsetOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView parent, View view, int position, long id)
滑动到屏幕外的View就立刻被回收了 这样就没法判断View 的位置了 如果item都是高度一致的 你可以获取当前最顶端item 的位置 结合它的position来计算
你的采纳是我前进的动力,记得好评和采纳,答题不易,互相帮助,
手机提问的朋友在客户端右上角评价点满意即可
如果你认可我的回答,请及时点击采纳为满意回答按钮!
解决方案:重写BaseAdapter,然后自行获取ListView中每行输入的EditText值
大概算法:重写BaseAdaptergetView函数,用一个数组存储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_lvListViewsetAdapter(mAdapter);
直接改变mCheckItemList中的数据,然后调用mAdapternotifyDataSetChanged();就可以更新ListView的数据
当然,直接从mCheckItemList也可以获得用户在EditText中输入的数据比较方便
其他:
ListView list= (ListView)findViewById(Ridlist);//获得listview
for (int i = 0; i < listgetChildCount(); i++) {
LinearLayout layout = (LinearLayout)listgetChildAt(i);// 获得子item的layout
EditText et = (EditText) layoutfindViewById(Ridet);// 从layout中获得控件,根据其id
// EditText et = (EditText) layoutgetChildAt(1)//或者根据位置,在这我假设TextView在前,EditText在后
Systemoutprintln("the text of "+i+"'s EditText:----------->"+etgetText());
}
以上就是关于安卓listview的优化监听的优化怎么拿去position全部的内容,包括:安卓listview的优化监听的优化怎么拿去position、如何获取滚动之后的listview的某个view在当前屏幕中的位置、如何获取listview的item中的内容等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)