在Toast上显示ArrayList内容

时间:2014-03-25 14:03:41

标签: android eclipse listview arraylist toast

我有一个listView,我想打印包含所选项目的arrrayList。

我可以展示我每次选择的选择。即如果我选择了一个选项,我可以将其打印出来(我在代码中将其标记为注释),但我想将所有选择打印在一起。 有什么帮助吗?

谢谢..

3 个答案:

答案 0 :(得分:2)

如果我理解正确,您希望在Toast中显示arrayList的内容。

  1. 就像donfuxx所说,你需要在你的onclicklistener之外创建你的arrayList。
  2. 当用户点击某个项目时,它将被添加到您的arrayList中。
  3. 然后遍历列表以填充名为allItems的字符串,然后在toast中显示allItems。

    ArrayList<String> checked = new ArrayList<String>();
    
    listView.setOnItemClickListener(new OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view,
                int position, long id) {
    
            String listItem = (String) listView.getItemAtPosition(position);
    
            if(!checked.contains(listItem)){ //optional: avoids duplicate Strings in your list
                checked.add((position+1), listItem);
            }
            String allItems = ""; //used to display in the toast
    
            for(String str : checked){
              allItems = allItems + "\n" + str; //adds a new line between items
            }
    
            Toast.makeText(getApplicationContext(),str, Toast.LENGTH_LONG).show();
        }
    });
    

答案 1 :(得分:1)

嗯,你有正确的概念,jsut错误的执行是你错过的部分:`

ArrayList<String> checked = new ArrayList<String>();
checked.add((position+1), listItem);
Toast.makeText(getApplicationContext(),checked.get((position+1)), Toast.LENGTH_LONG).show();`

因此,您必须获取ArrayList中您需要获取的元素的位置 checked.get(array position of element here)

答案 2 :(得分:0)

如果要显示ArrayList中的每个项目,可以使用一个简单的循环并将它们添加到这样的字符串中:

...
checked.add((position+1), listItem);

String tempString = "";
for(int x = 0; x < checked.length(); x++) {
    tempString = tempString + ", " + checked.get(x);
}
tempString = tempString.substring(2);
Toast.makeText(getApplicationContext(),tempString, Toast.LENGTH_LONG).show();

编辑修改了一下,只在项目之间插入逗号