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(); 
相關問題