我试图允许用户从清单中选择一些目录,并在点击“提交”按钮时返回.这是我的代码片段.它使用/ sdcard /上的所有目录填充ListVIEw,并在提交时初始选择(我选择的是多少),日志显示返回的正确选择.但是,如果我取消选中项目,然后再次单击“提交”,它仍然显示为全部被选中.我需要写一个处理程序来取消选中项目吗?我以为这是由choiceMode选择照顾的?谢谢!
private SparseBooleanArray a; directoryList.setAdapter(new ArrayAdapter<String>(this,androID.R.layout.simple_List_item_multiple_choice,directoryArray)); submitbutton = (button)findVIEwByID(R.ID.submit_button); submitbutton.setonClickListener(new OnClickListener() { @OverrIDe public voID onClick(VIEw v) { a = new SparseBooleanArray(); a.clear(); a = directoryList.getCheckedItempositions(); for (int i = 0; i < a.size(); i++) { //added if statement to check for true. The SparseBooleanArray //seems to maintain the keys for the checked items,but it sets //the value to false. Adding a boolean check returns the correct result. if(a.valueAt(i) == true) Log.v("Returned ",directoryArray[a.keyAt(i)]); } } });解决方法 我知道你找到了一个适合你的解决方案,但更简单和更简单的解决方案大部分时间都可能是这样的(我想要保留选中元素的所有ID):
(在我的ListActivity):
SparseBooleanArray selectedPos = getListVIEw() .getCheckedItempositions();listadapter lAdapter = getlistadapter();List<Long> IDs = new linkedList<Long>(); for (int i = 0; i < lAdapter.getCount(); i++) { if (selectedPos.get(i)) { IDs.add(lAdapter.getItemID(i)); }}总结
以上是内存溢出为你收集整理的android – 从多个选择ListView返回值全部内容,希望文章能够帮你解决android – 从多个选择ListView返回值所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)