android - 从多选 ListView 中检索选定的项目

标签 android android-listview android-sdk-2.3 multiple-select

我目前正在为我的 Android 应用程序实现多选 ListView。我的目标是在单击搜索按钮时从与 ListView 关联的 ArrayAdapter 中检索所选项目。

我目前对如何执行此操作感到困惑,我在网上找到了一些东西,例如尝试设置 MultiChoiceModeListener,但这似乎不是 Eclipse< 中的一个选项。我正在使用 Google APIs(级别 10),相当于 Android 2.3.3。这是我到目前为止的代码:

   public class FindPlace extends Activity {    

    public FindPlace() {}

    @Override
    protected void onCreate(Bundle savedInstanceState) {            
        super.onCreate(savedInstanceState);
        setContentView(R.layout.list_places);
        Button search = (Button) findViewById(R.id.search);
        String[] categories = getResources().getStringArray(R.array.Categories);
        ArrayAdapter ad = new ArrayAdapter(this,android.R.layout.simple_list_item_multiple_choice,categories);
        final ListView list=(ListView)findViewById(R.id.List);
        list.setAdapter(ad);
        list.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
        list.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) { }

        });     
    }       
}

最佳答案

稍微更有效/正确:

SparseBooleanArray checked = listView.getCheckedItemPositions();
for (int i = 0; i < checked.size(); ++i)
{
    if (checked.valueAt(i))
    {
        int pos = checked.keyAt(i);
        doSomethingWith(adapter.getItem(pos));
    }
}

关于android - 从多选 ListView 中检索选定的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9653319/

相关文章:

android - 如何知道我的 Android 应用程序已升级以重置警报?

android - 如何构建我自己的 Android SDK

android - 在 "flutter doctor"中显示关于 Android 工具链的错误

android - TableRow 的点击效果与 ListView 的点击效果相同

java - 在 Android 中异步更新 UI

Android webview javascript 界面无法正常工作

android - 如何在 Android 中以编程方式添加电话日志?

android - 如何根据随机数显示不同的说法

android - Activity 加载,但不显示

java - 由自定义 ArrayAdapter 中按钮的事件创建的 DialogFragment 始终具有相同的位置