Android では、SQLOrder BY RANDOM() LIMIT 2
が 2 つのランダムな文字列を出力することはわかっていますが、両方の文字列を同じ TextView に入れます。2 つのランダムな文字列を取得し、それらを 2 つの別個の TextView に配置したいと思います。このコードは、2 つのランダムな文字列を取得し、それらを同じテキストビューに出力します。
//--- DBAdapter method
public String getRandomHP1() {
Cursor cursor = this.db.query(
"hdtable Order BY RANDOM() LIMIT 2",
new String[] { KEY_HP }, null, null, null, null, null);
String result = "";
for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) {
result = result + cursor.getString(0);
}
return result;
}
//--- Main Activity
String r1 = dba.getRandomHP1();
dba.close();
optionB_TV.setText(r1);
そこで、以下のコードを試して、2 つのランダムな文字列を 2 つの文字列配列に分離しようとしましたが、アプリがクラッシュしました。誰かが私が間違っていることを教えてもらえますか? ありがとう!
//--- DBAdapter method
public String[] getRandomHP2() {
Cursor cursor = this.db.query(
"hdtable Order BY RANDOM() LIMIT 2",
new String[] { KEY_HP }, null, null, null, null, null);
if (cursor != null) {
for (cursor.moveToFirst(); !cursor.isAfterLast();){
String colStrings[] = new String[2];
colStrings[0] = cursor.getString(0);
colStrings[1] = cursor.getString(1);
return colStrings;
}
}
return null;
}
//---Main Activity
String[] r2 = dba.getRandomHP2();
dba.close();
optionB_TV.setText(r2[0]);
optionC_TV.setText(r2[1]);