[英]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.