2009-09-01 8 views
1

私はCursorからStringデータを取得しますが、Arrayに変換する方法はわかりません。どうやってやるの?文字列を配列に変換する(アンドロイド)

String[] mString; 
for(cursor.moveToFirst(); cursor.moveToNext(); cursor.isAfterLast()) { 
    mTitleRaw = cursor.getString(cursor.getColumnIndex(SBooksDbAdapter.KEY_TITLE_RAW)); 
} 
mString = mTitleRaw ???? 

答えて

4

あなただけそうのような単一要素の配列にmTitleRawをラップすることができます:

mString = new String[] { mTitleRaw }; 

更新: あなたはおそらく欲しいのはあなたが行うことができ、単一のアレイにすべての行を追加することですArrayListに、バックので、のような文字列[]配列に変異する:Pentium10はmarshall_lawのコードがそれにバグが指摘したように

ArrayList strings = new ArrayList(); 
for(cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { 
    String mTitleRaw = cursor.getString(cursor.getColumnIndex(SBooksDbAdapter.KEY_TITLE_RAW)); 
    strings.add(mTitleRaw); 
} 
Sting[] mString = (String[]) strings.toArray(new String[strings.size()]); 
+1

あなたは良いのですか?あなたの最初の要素はスキップされています:for(c.moveToFirst();!c.isAfterLast(); c.moveToNext()) – Pentium10

1

。カーソルの最初の要素をスキップします。ここにはより良い解決策があります:

ArrayList al = new ArrayList(); 
    cursor.moveToFirst(); 
    while(!cursor.isAfterLast()) { 
     Log.d("", "" + cursor.getString(cursor.getColumnIndex(ProfileDbAdapter.KEY_PROFILE_NAME))); 
     String mTitleRaw = cursor.getString(cursor.getColumnIndex(ProfileDbAdapter.KEY_ID)); 
     al.add(mTitleRaw); 
     cursor.moveToNext(); 
    } 

私が言ったように、このコードはカーソルの最初の要素を含みます。

関連する問題