2012-08-29 72 views
8

我重寫的CursorAdapter,我需要得到最後一個項目,問題是,CursorAdapter的具有實際上是一個get()方法...但來源是一個數據庫,它返回一個普通的對象! (我甚至不知道它是什麼,我希望它返回一個遊標對象,而不是...)從CursorAdapter.get()返回對象

Neverthless,我怎樣才能使它回到我的包裝分貝行類的實例?

例: 說我的數據庫有這樣的行:

ID |名字|姓

我想讓一班從那。

現在,我想能有一個人得到(int i)以從光標適配器方法...

回答

19

現在,我想能有一個人得到(int i)以從光標適配器方法。 ..

這似乎是一個奇怪的要求。我會將Cursor本身(或從CursorAdapter的getItem()返回的遊標)轉換爲我的Activity中的常規方法。 這裏的基本步驟來創建一個Person get()方法。

創建Person類:

public class Person { 
    long id; 
    String firstName; 
    String surname; 
} 

而且在自定義的CursorAdapter簡單地使用這樣的方法:

public Person get(int position) { 
    Cursor cursor = getCursor(); 
    Person person; 
    if(cursor.moveToPosition(position)) { 
     person = new Person(); 
     person.id = cursor.getLong(cursor.getColumnIndex("_id")); 
     person.firstName = cursor.getString(cursor.getColumnIndex("firstName")); 
     person.surname = cursor.getString(cursor.getColumnIndex("surname")); 
     results.add(person); 
    } 

    return person; 
} 
42

也只是使用adapter.getItem(),並將其轉換爲指針,並且沒有必要像接受的答案那樣手動移動光標

Cursor cursor = (Cursor) myCursorAdapter.getItem(position); 
String myColumnValue = cursor.getString(cursor.getColumnIndex("YOUR_COLUMN_NAME")); 
+6

這是正確的並且應該接受的答案 – user123321

+0

棒極了!從未知道。我的生活節省了幾個小時! – barmaley