如何在sqlite数据库中保存值以在Android中列出?

时间:2013-06-13 11:30:06

标签: android android-sqlite

我想在列表中获取已保存的值。我正在创建一个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();

请告诉我错误是什么。感谢

2 个答案:

答案 0 :(得分:0)

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

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

查看此sample for ref

答案 1 :(得分:0)

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