36

カーソルデータを使用してリスト配列(スクロール時にリストに最初のアルファベットが表示される)を作成するにはどうすればよいですか?

4

5 に答える 5

41

簡単な修正: 上記の for ループは、カーソルの最初の要素をスキップします。最初の要素を含めるには、これを使用します。

ArrayList<String> mArrayList = new ArrayList<String>();
mCursor.moveToFirst();
while(!mCursor.isAfterLast()) {
     mArrayList.add(mCursor.getString(mCursor.getColumnIndex(dbAdapter.KEY_NAME))); //add the item
     mCursor.moveToNext();
}
于 2011-07-20T20:23:04.793 に答える
23

@imbriziの答えよりもさらに優れているのはこれです:

ArrayList<String> mArrayList = new ArrayList<String>();
while(mCursor.moveToNext()) {
     mArrayList.add(mCursor.getString(mCursor.getColumnIndex(dbAdapter.KEY_NAME))); //add the item
}

moveToNext()何も残っていない場合は false を返すため、SLOC が少し減り、見やすくなります。

さらに良いのは、ループの外で列インデックスを取得することです。

ArrayList<String> mArrayList = new ArrayList<String>();
int columnIndex=mCursor.getColumnIndex(dbAdapter.KEY_NAME)
while(mCursor.moveToNext()) {
     mArrayList.add(mCursor.getString(columnIndex)); //add the item
}
于 2014-01-20T03:19:30.697 に答える