2014-05-02 321 views
0

我的數據庫是絕對正確填入(< 3 SQLite數據庫瀏覽器),但是當我嘗試列出在一個視圖中的所有記錄,我得到如下:的Android SQLite的返回遊標垃圾

[email protected] 
[email protected] 
[email protected] 

我使用simple_list_item_1和一個ArrayAdapter。以上活動課

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_saved_objects); 

    datasource = new ObjectsDatabase(this); 
    datasource.open(); 

    List<Object> values = datasource.getSavedObjects(); 

    ArrayAdapter<ObjectName> adapter = new ArrayAdapter<ObjectName>(this, 
      android.R.layout.simple_list_item_1, values); 
    setListAdapter(adapter); 
} 

XML佈局:

在我的活動類創建聲明

<LinearLayout 
    android:id="@+id/group" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" > 

    <Button 
     android:id="@+id/menu" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:onClick="onButton1Click" 
     android:text="@string/menu_back" /> 

</LinearLayout> 

<ListView 
    android:id="@android:id/list" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:text="@string/hello_world" /> 

有什麼想法?

+0

你爲什麼使用ArrayAdapter而不是SimpleCursorAdapter(即設計有光標和SQLite工作)? – Everett

回答

0

在我看來你是想看看Object類的值,這將返回正確的值作爲

[email protected] 
[email protected] 
[email protected] 

嘗試返回String沒有Object,創造List<String>。您始終可以創建自己的類型element,獲取該自定義類對象並返回它的String值。

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_saved_objects); 

    datasource = new ObjectsDatabase(this); 
    datasource.open(); 

    List<String> values = datasource.getSavedObjects(); 

    ArrayAdapter<ObjectName> adapter = new ArrayAdapter<ObjectName>(this, 
      android.R.layout.simple_list_item_1, values); 
    setListAdapter(adapter); 
} 
+0

這對我來說完全有意義,我只是不確定在代碼中發生了什麼。謝謝你的回答,我會玩這個:) – user3594597

0

,你看到的是toString()ObjectName對象的默認實現。

在您的ObjectName類中重寫toString()以生成用於顯示目的的字符串表示形式。

由於數據顯然來自數據庫查詢,因此使用遊標適配器而不是陣列適配器也值得考慮。