2011-11-02 79 views
0

我有一个ListView中的字符串数组,它被设置为在用户完成时选中“完成”选项。我想通过创建一个新的活动的意图有多个选择的ListView

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); 

回答

1

我认为,这个环节是非常有帮助的你是什么到底要.. click here

+0

中选择已检查的项目if(!selectedChildren.isEmpty())selectedChildren.clear();每次你必须将元素转换为数组列表。 –

+0

其实你在找什么? –

+0

我正在寻找一种方法将被检查的项目放入另一个字符串中,然后用意图启动一个新的活动。 我知道如何开始一个新的活动,我坚持的部分是找到字符串“HAM”,如果它是“检查”,然后把“肉”放入一个新的数组,最终将它传递给另一个类,当人触及“完成”。 – RIVERE

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); 
    } 

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

更多解释:getCheckedItemIds()返回包含检查项目的位置(编号)的数组long []。您应该循环访问数组并使用索引从names

+0

不,请阅读新增说明 – Reno

+0

'//使用选定元素的新列表视图 \t \t ArrayList selectedChildren = new ArrayList (); \t \t \t \t //创建一个意图用于下一类 \t \t意图形成=新意图(此,FormedList.class); \t \t为(长I:listView.getCheckItemIds()) \t \t { \t \t \t selectedChildren.add((int)的I,NULL); (TAG,“getCheckItemIds():id =”+ i);我们可以通过下面的例子来说明这个问题。 \t \t \t如果(( “完成”)selectedChildren.equals) \t \t \t \t startActivity(形成); \t \t}' @Reno 我不确定这是否正确,但我正在处理您提到的问题。我没有收到任何错误,但是当我点击“完成”选项时,新的活动无法启动。 – RIVERE