Android Listview游标适配器,总是在单击时获取第一项

Android Listview游标适配器,总是在单击时获取第一项,android,listview,android-listview,simplecursoradapter,android-adapter,Android,Listview,Android Listview,Simplecursoradapter,Android Adapter,我有一段使用简单光标适配器的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.setO

我有一段使用简单光标适配器的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());
    }
});
final SimpleCursorAdapter=new SimpleCursorAdapter(getActivity(),R.layout.textonly_listview_项,光标,从,到);
setAdapter(适配器);
listview.setChoiceMode(listview.CHOICE\u MODE\u SINGLE);
setOnItemClickListener(新的AdapterView.OnItemClickListener(){
@凌驾
public void onItemClick(AdapterView父对象、视图、整型位置、长id){
游标项=(游标)父项.getItemAtPosition(位置);
adapter.notifyDataSetChanged();
view.setSelected(true);
G.t(getActivity(),“正在处理类别:”+item.getName());
}
});
无论单击哪个单元格,它都会得到列表视图中的第一项或最上面的项,有人能告诉我哪里错了吗

你试过这个吗

Cursor item = adapter.getItem(position);
view.setSelected(true);
adapter.notifyDataSetChanged();

如注释中所述,您应该移动
适配器.notifyDataSetChanged()结束。这就是发生这种情况的可能原因。

如果移动
adapter.notifyDataSetChanged()到最后(在祝酒之后)?它改变了什么吗?哇,这就像魔术一样,把你的评论移到回答上来,这样我就可以投票并把它标记为正确^_^