0

我正在尝试在列表中获取保存的值。我正在创建一个记事本,我希望当任何人打开记事本时,每个保存的列表都会显示在列表的主页上。

我已成功将值保存在数据库中,但是当我尝试在列表中获取值时,它会在每一行中提供完整的字符串值,例如“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();

请让我知道错误是什么。谢谢

4

2 回答 2

0

您正在将对象的对象表示添加到ListView...

在您的情况下,您应该cursor.getString(1)为适配器输入参数返回数据,即字符串数组......即列表必须是字符串数组或 ArrayList......如果你知道我的意思..

查看此示例以获取参考

于 2013-06-13T11:37:50.390 回答
0

您的TaskDetailsActivity类应该定义一个toString()方法,该方法返回您想要为该行显示的任何内容。

于 2013-06-13T11:38:52.897 回答