2016-12-24 1 views
0

私はリストビューのデータベースから2つの値を表示する際に助けが必要です。アダプタを使用していますが、デフォルトの配列アダプタは1つの値しか表示しません。値。以下は、私はどのようにデータベースを介してアレイアダプタを投入しているのか私のコードです。コードの下Android:カスタムアレイを作成する方法データベースから2つのテキストビューを表示するアダプタ

private void updateUI() { 
    ArrayList<String> taskList = new ArrayList<>(); 
    SQLiteDatabase db = mHelper.getReadableDatabase(); 
    final Cursor cursor = db.query(TaskContract.TaskEntry.TABLE, 
      new String[]{TaskContract.TaskEntry._ID, TaskContract.TaskEntry.COL_TASK_TITLE}, 
      null, null, null, null, null); 

    while (cursor.moveToNext()) { 
     int idx = cursor.getColumnIndex(TaskContract.TaskEntry.COL_TASK_TITLE); 
     taskList.add(cursor.getString(idx)); 
    } 

     mAdapter = new ArrayAdapter<>(this, 
       R.layout.item_todo, 
       R.id.task_title, 
       taskList); 
     mTaskListView.setAdapter(mAdapter); 


    cursor.close(); 
    db.close(); 
} 
+0

アダプタクラスコード – Nithinlal

+0

のためのモデルクラスの配列を使用して、任意の 'ArrayAdapter'を使用しない代わりに、' SimpleCursorAdapter'を使用し、コードは5〜10行に削減されます... – rafsanahmad007

+0

最初の投稿その – pskink

答えて

0

試してみてください。

private void updateUI() { 
     ArrayList<String> taskList = new ArrayList<>(); 
     SQLiteDatabase db = mHelper.getReadableDatabase(); 
     final Cursor cursor = db.query(TaskContract.TaskEntry.TABLE, 
       new String[]{TaskContract.TaskEntry._ID, TaskContract.TaskEntry.COL_TASK_TITLE}, 
       null, null, null, null, null); 
    if(cursor.getCount()>0 && cursor.moveToFirst()){ 
     while (cursor.moveToNext()) { 
      int idx = cursor.getColumnIndex(TaskContract.TaskEntry.COL_TASK_TITLE); 
     taskList.add(cursor.getString(idx)); 
     } 
    } 

      mAdapter = new ArrayAdapter<>(this, 
        R.layout.item_todo, 
        R.id.task_title, 
        taskList); 
      mTaskListView.setAdapter(mAdapter); 


     cursor.close(); 
     db.close(); 
    } 
関連する問題