我使用简单的游标适配器为listview提供了这段代码:
final SimpleCursorAdapter adapter = new SimpleCursorAdapter(getActivity(), R.layout.textonly_listview_item, cursor, from, to);
listview.setAdapter(adapter);
listview.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
listview.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Cursor item = (Cursor) parent.getItemAtPosition(position);
adapter.notifyDataSetChanged();
view.setSelected(true);
G.t(getActivity(), "Now working with category: " + item.getName());
}
});
当点击任何一个单元格时,它总是得到列表视图中的第一个项目或最顶层的项目,有人可以告诉我哪里错了吗?
答案 0 :(得分:1)
你试过这个吗?
Cursor item = adapter.getItem(position);
view.setSelected(true);
adapter.notifyDataSetChanged();
答案 1 :(得分:1)
正如评论中所提到的,您应该将adapter.notifyDataSetChanged();
移到最后。这就是发生这种情况的可能原因。