2014-09-20 75 views
0

我用我創建的數據庫獲取的數據填充我的ListView。我想獲得長期點擊的ListView中的項目名稱。 我曾嘗試使用以下方法嘗試:在Android中獲取ListView項目的價值

- parent.getItemAtPosition(position).toString(); 
- myListView.getItemAtPosition(position).toString(); 
- myListView.getSeletedItem(position).toString(); 

這三個語句的工作很好,但因爲我從我的數據庫,所以我得到了下面的值獲取數據填補了LisView返回:

09 -20 13:01:22.370:我/的System.out(5351):[email protected]

,而該項目的名稱,這我點擊,是 '家' ..

請幫幫我。如何將[email protected]轉換成Home

MY ADAPTER:

mCursor = mDB.fetchData(); 
String[] columns = new String[] { AreaDatabase.KEY_AREA }; 
    int[] to = new int[] { R.id.tvArea }; 

    mAdapter = new SimpleCursorAdapter(this, R.layout.lvarea, mCursor, 
      columns, to); 
    lvArea.setAdapter(mAdapter); 

fetchData()函數:

public Cursor fetchAreaData() { 
    Cursor mCursor = ourDatabase.query(AREA_TABLE_NAME, new String[] { 
      KEY_ROWID, KEY_AREA }, null, null, null, null, null); 
    if (mCursor != null) { 
     mCursor.moveToFirst(); 
    } 

    return mCursor; 
} 
+0

@阿迪爾沙赫扎德........歡迎.......#2職位的代碼格式正確的,哪些是你到目前爲止嘗試....以便我們可以幫助你更快.....! – Devrath 2014-09-20 08:34:50

回答

0

Cursor具有方法getString(int columnIndex)。您可以使用它從指定的列索引中獲取CursorString值。

> Cursor currentCur = myListView.getItemAtPosition(position); 
> String name = currentCur.getString(1); //It will return KEY_AREA (column index 1) value from Cursor 
+0

適用於ListView中的第一個條目。但在ListView中獲得第二個條目的錯誤
'09-20 13:41:21.970:E/AndroidRuntime(8396):java.lang.IllegalStateException:無法從CursorWindow讀取第1行,第2列。在從中訪問數據之前,確保Cursor已正確初始化。 ' – 2014-09-20 08:48:18

+0

你可以在你調用getString()方法時提供代碼嗎? – 2014-09-20 08:59:17

+0

您是否使用positionIn columnIndex?你不應該。位置更像是光標所在行而不是列的位置。所以你只需調用getString(1);對於每個項目 – 2014-09-20 09:02:15

0

這樣做:

parent.getItemAtPosition(position).toString(); 
+0

仍然得到相同的結果 – 2014-09-20 08:50:50

相關問題