我正在使用 ListView 尝试添加/删除项目。添加位相当容易,但事实证明移除更棘手。我在考虑使用多项选择列表,但从更简单的开始,我选择了单选模式只是为了测试它。我有一个包含项目的字符串数组,一个数组适配器,用于在数据更改时通知。
expenseAdapter=new ArrayAdapter<String>(this,
android.R.layout.simple_list_item_single_choice,
android.R.id.text1,
expenseList);
myListView.setAdapter(expenseAdapter);
myListView.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View item, int position,
long index) {
((ListView)parent).setItemChecked(position, true);
item.setSelected(true);
}
});
我还为项目 onClick 事件添加了一个侦听器。从视觉上看,该项目被选中/取消选中,问题是当我单击触发删除该项目的按钮时,列表中的选定索引始终为-1,尽管该项目似乎已被选中。
带有 onClick 事件的删除按钮
public boolean doDelete(View view)
{
ListView myListView= (ListView)findViewById(R.id.list);
String s=(String)myListView.getSelectedItem();
expenseList.remove(s);
expenseAdapter.notifyDataSetChanged();
return true;
}
任何想法正在发生什么或我做错了什么?