selfview 是一个放到 navigation controller 里的 view, navigation bar 也一样, 所以它俩之间是平级的, 并不是说 navigation bar 是 selfview 的子 view,自然也就没有办法计算 navigation bar 里的子项目在 selfview 里的位置。
我想你想算的应该是 item 在 window 或者在 navigationControllerview 中的位置吧?
你可以用 view debugging 看一下各个 view 之间的层级关系。
解决方案:重写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());
}
我的需求是在recyclerview下的子view中有多个EditText
提交数据的时候需要获取到每个EditText的内容
1第一种方式,直接在Activity中
获取item中跟布局
好吧,结果是不靠谱的,发现每次只能获取到看的见的 recyclerview的跟布局, 还未出现在我们视野的子view,获取为null,
2尝试第二种
但是在fragment中如果直接调用上面的方法,返回的view为空,我们需要用handler的postDelayed方法延迟获取。
结果还是不尽人意,看不见的item,依旧获取不了跟布局
3直接在Adapter中为item中的edittext添加 addTextChangedListener 监听方法
以上就是关于如何获取导航栏中rightBarButtonItem对应self.view的坐标全部的内容,包括:如何获取导航栏中rightBarButtonItem对应self.view的坐标、如何获取listview的item中的内容、获取Recyclerview下的子view等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)