1

我用简单的游标适配器有这段代码的列表视图:点击时列表视图光标适配器,总是第一个项目onClicked

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()); 
    } 
}); 

取其细胞,它总是得到第一个项目或在列表最顶端项查看,有人可以告诉我我错在哪里吗?

Screenshoot sample

+0

如果将'adapter.notifyDataSetChanged();'移动到最后(在烤面包后)会怎么样?它会改变什么吗? –

+0

Wops,这是像魔术般的工作,移动您的评论回答,所以我可以upvote并将其标记为正确^ _^ – DeckyFx

回答

1

正如在评论中提到的,您应该将adapter.notifyDataSetChanged();移动到最后。这是发生这种情况的可能原因。

+0

它工作像魔术,谢谢,也给你flx – DeckyFx

1

你试过这个吗?

Cursor item = adapter.getItem(position); 
view.setSelected(true); 
adapter.notifyDataSetChanged(); 
相关问题