Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 从多个选择ListView返回值大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
编辑:好的,我找到了一个解决方案.不知道这是正确的解决方案,但它的工作正常.添加到以下代码.

我试图允许用户从清单中选择一些目录,并在点击“提交”按钮时返回.这是我的代码片段.它使用/ 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.submi@R_675_11164@utton);
    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返回值所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。