我想在列表中获取已保存的值。我正在创建一个anotepad,我想当任何人打开记事本时,每个保存的列表显示在列表的主页上。
我已成功将值保存在数据库中,但是当我尝试在列表中获取值时,它会在每一行中提供完整的字符串值,如“com.todo.task.activity@4106a690”。
我认为问题出在我的数据库getlist()方法中请检查:
public List<TaskDetailsActivity> GetAddTaskLists() {
List<TaskDetailsActivity> TaskLists = new ArrayList<TaskDetailsActivity>();
// Select All Query
String selectQuery = "SELECT * FROM " + TABLE_TASKLISTS;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
// looping through all rows and adding to list
if (cursor.moveToFirst()) {
do {
TaskDetailsActivity tasks = new TaskDetailsActivity();
tasks.settaskLists_ID(cursor.getString(0));
tasks.settasklists_Title(cursor.getString(1));
// Adding Doc to list
TaskLists.add(tasks);
} while (cursor.moveToNext());
}
// return Doc list
return TaskLists;
}
我在这里调用数据库方法:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
ListView list_tasklistname = (ListView)findViewById(R.id.list_tasklistname);
TaskManager_Database db = new TaskManager_Database(getApplicationContext());
list = db.GetAddTaskLists();
ArrayAdapter<TaskDetailsActivity> adapter = new ArrayAdapter<TaskDetailsActivity>(getApplicationContext(),
android.R.layout.simple_list_item_1, list);
list_tasklistname.setAdapter(adapter);
adapter.notifyDataSetChanged();
请告诉我错误是什么。感谢
答案 0 :(得分:0)
您正在将对象的对象表示添加到ListView
...
在你的情况下你应该在cursor.getString(1)
中为适配器输入参数返回数据,即字符串数组......即list必须是字符串数组或ArrayList ...如果你知道我的意思.. < / p>
答案 1 :(得分:0)
您的TaskDetailsActivity
类应该定义一个toString()
方法,该方法返回您要为该行显示的内容。