我有一个listView,我想打印包含所选项目的arrrayList。
我可以展示我每次选择的选择。即如果我选择了一个选项,我可以将其打印出来(我在代码中将其标记为注释),但我想将所有选择打印在一起。 有什么帮助吗?
谢谢..
答案 0 :(得分:2)
如果我理解正确,您希望在Toast中显示arrayList的内容。
然后遍历列表以填充名为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();
编辑修改了一下,只在项目之间插入逗号