2013-05-03 46 views
0

我是Android新手,開始從事數據庫和列表視圖工作。我想使用subjectID作爲我創建的listview的ID。這樣我可以使用該ID在輕敲項目時從數據庫查詢記錄。我知道這被問了很多次,但似乎沒有任何工作在我身上。先謝謝您的幫助。在SQL的如何使用SimpleCursorAdapter將數據庫中的ID用作Listview ID?

部分:subjectID作爲_id

我有這一塊代碼:

String[] dataColumns = { "subjectName","shortemail", "lastScanDate", "lastScore" } ; 
int[] viewIDs = { R.id.list_column1 , R.id.list_column2, R.id.list_column3, R.id.list_column4 }; 


SimpleCursorAdapter adapter 
     = new SimpleCursorAdapter(
        this,        // The Context for the ListView 
        R.layout.subject_line,   // Points to the XML for a list item 
        cursor,       // The cursor to get items from 
        dataColumns, 
        viewIDs 
     ); 


    setListAdapter(adapter); 
    db.close(); 



public void onListItemClick(ListView l, View v, int position, long id) { 

//codes here 

} 
+0

您是否嘗試將row_id傳遞給onItemClick()事件中的下一個活動,以便您可以獲取該特定ID的記錄,我是對嗎? – 2013-05-03 09:41:25

+0

@ shree202 - 你說得對。我想將該ID傳遞給顯示具有該主題ID的記錄的下一個活動。 – Junryl 2013-05-03 09:46:57

回答

1

如果你讀的CursorAdapter的源代碼,你可以找到:

public long getItemId(int position) { 
     if (mDataValid && mCursor != null) { 
      if (mCursor.moveToPosition(position)) { 
       return mCursor.getLong(mRowIDColumn); 
      } else { 
       return 0; 
      } 
     } else { 
      return 0; 
     } 
    } 

而且mRowIDColumn已分配:

mRowIDColumn = cursorPresent ? c.getColumnIndexOrThrow("_id") : -1; 

這些意思是,如果您使用「_id」作爲您的數據庫ID,getItemId()將已經是數據庫的ID。

0

剛取row_ids並存儲在ArrayList<Integer> arraylist = new ArrayList<Integer>;

然後在你的onItemClick()插入此代碼:

row_id = arraylist.get(position); 

startActivity(new Intent(PresentActivity.this, NextActivity.class).putExtra("row_id", row_id)); 

希望這會幫助你。 如果您需要進一步的幫助,請讓我知道。

這不是唯一的方法,我們可以做到這一點。這是最簡單的方法。

相關問題