java - 添加时,选中的项目始终附加在数组列表中
问题描述
我在一个数组列表中添加了选中的项目,但是当我点击一个项目时总是附加。此外,当我取消选中它时,它也会附加在数组列表中。这是代码:
List<String> ingList = new ArrayList<String>();
List<String> onhandIngList = new ArrayList<String>();
ingList.add("one");
ingList.add("two");
intList.add("three");
//displays the arraylist using arrayadapter
final ArrayAdapter<String> arrayAdapter = new ArrayAdapter<String> (this, android.R.layout.simple_list_item_multiple_choice, ingList);
if(ingList.size() != 0) {
listView.setAdapter (arrayAdapter);
}else{
Toast.makeText (Ingredients.this, "No data", Toast.LENGTH_SHORT).show ();
}
listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> adapterView, View view, int index, long l) {
Object clickItemObj = adapterView.getAdapter().getItem(index);
onhandList.add(( String ) clickItemObj);
}
});
我希望输出将是检查项目的值。但没有重复的输出。
解决方案
也许你应该尝试这样的事情(在 onItemClick() 内部):
SparseBooleanArray checked = listView.getCheckedItemPositions();
if(checked.get(index)){
onhandlist.add(...)
}
else{
onhandList.remove(...)
}
推荐阅读
- node.js - 如何在 Node.js 中解密三重 DES
- c# - 为什么在 Outlook 应用程序(VSTO 插件)的任务视图或收件箱中设置的 FlagStatus 存在差异
- c# - automapper map collections with action
- php - Laravel quick integer lookup?
- powershell - 通过 CMD 记录 Ping 信息
- java - 每当我在 andriod studio EditText 框中执行任何操作(如添加 sub equals 等)时,我的应用程序都会崩溃
- sap - Mosquitto 代理桥代理不可用 - SAP IoT
- java - Guava Google 在 Java 中使用反射
- debugging - 如何在 Visual Studio Code (VSCode) 中调试 Cucumber - Protractor?
- c# - 通过 ajax 更新多个 div