2014-12-09 74 views
0

我在ListView上單擊項目時收到_ID值時出現問題。如何從ListView(數據庫)獲取_id [android]

我有這樣的代碼:

List<SavedSearch> values = mydb.getAllSavedSearches(); 

     ArrayAdapter<SavedSearch> adapter = new ArrayAdapter<SavedSearch>(this, 
       android.R.layout.simple_list_item_1, values); 
     //adding it to the list view. 
     obj = (ListView)findViewById(R.id.listView1); 
     obj.setAdapter(adapter); 

     obj.setOnItemClickListener(new OnItemClickListener(){ 

    @Override 
    public void onItemClick(AdapterView<?> parent, View view, int position, 
    long id) { 

而我的問題是,我想在onItemClick以某種方式得到ListView中點擊項目的數據庫中的_ID值。 int position and long id兩者都只返回列表上的位置。 感謝您的幫助,我可以說以前的任何主題都對我有所幫助。

回答

1

如果您使用的是數據庫,我建議您不要使用ArrayAdapter,而使用CursorAdapter。然後,只需撥打CursorAdapter中的方法getItemId()即可檢索給定位置上的項目標識。所以,這樣做:

CursorAdapter adapter = new CursorAdapter(Context yourAppContext, Cursor yourDBCursor, false); 
obj = (ListView)findViewById(R.id.listView1); 
obj.setAdapter(adapter); 
obj.setOnItemClickListener(new OnItemClickListener(){ 

@Override 
public void onItemClick(AdapterView<?> parent, View view, int position, 
long id) { 

    adapter.getItemId(position); // This is the _ID value 
} 
0

這只是建議。我不確定這會解決問題。 方法1:每當你加載的ListView 剛纔設置的ID爲行,你可以從onItemClikListener方法獲取ID

方法2: 添加texView(集可視性消失),並設置文本您的ID並獲得ID使用getText()方法

注意

不要使用位置時,列表視圖是回收,這是一直在變化。

相關問題