ListView有多个选择

时间:2011-11-02 03:01:30

标签: android android-listview

我在ListView中有一个字符串数组,设置为在用户完成时选中“Done”进行多项选择。我想使用Intent

创建一个新的Activity
String[] names = new String[] {"Ham","Cheese","Lettuce", "Bacon", "Done"};
    setListAdapter(new ArrayAdapter<String>(this,
                        android.R.layout.simple_list_item_multiple_choice,
                    android.R.id.text1, names));
    ListView listView = getListView();
    listView.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);

我在下面尝试做的是基于用户检查的信息我想将某些信息放入新的列表视图中,然后在他们点击startActivity的“完成”后向他们显示列表视图。我不确定这是否是正确的方法。

Intent e = new Intent(getApplicationContext(), FormedList.class);
      if(listView.getCheckItemIds().toString().equals("Ham"))
          e.putExtra("Meat", selectedChildren);
      if(listView.getCheckItemIds().toString().equals("Cheese"))
          e.putExtra("Dairy", selectedChildren);
      if(listView.getCheckItemIds().toString().equals("Bacon"))
          e.putExtra("Swine", selectedChildren);
      if(listView.getCheckItemIds().toString().equals("Done"))
           startActivity(e);

2 个答案:

答案 0 :(得分:1)

我认为这个链接非常有用,只是你想要的...... click here

答案 1 :(得分:1)

this example一样,

 ArrayList<Integer> extra_array = new ArrayList<Integer>();
     for (long i : mContactList.getCheckedItemIds()) {

    Log.v(TAG, "getCheckItemIds(): id = " + i);
    extra_array.add((int) i);
  }

数组包含所选项的索引。您可以将这些项放在String数组中,并将其作为意图传递给下一个活动。

更多解释:getCheckedItemIds()返回一个数组long [],其中包含已检查项目的位置(数字)。您应循环遍历数组并使用索引从names

中选择已检查的项目