簡體   English   中英

Android SQLite游標返回垃圾

[英]Android SQLite cursor returning junk

我的數據庫肯定正確地被填充(<3 SQLite數據庫瀏覽器),但是當我嘗試列出視圖中的所有記錄時,得到以下信息:

com.example.AppName.ObjectName@4055e8c6
com.example.AppName.ObjectName@3456e789
com.example.AppName.ObjectName@4563e5b0

我正在使用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" />

有什么想法嗎?

我認為您正在嘗試查看Object類的值,該類將為您返回正確的值

com.example.AppName.ObjectName@4055e8c6
com.example.AppName.ObjectName@3456e789
com.example.AppName.ObjectName@4563e5b0

嘗試返回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);
}

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

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

還值得考慮使用游標適配器而不是數組適配器,因為數據顯然來自數據庫查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM