英単語帳アプリを作っています。
その中で意味テストの機能をつけようと思っています。
概要は、データベースより単語をランダムで取り出し、4つのラジオボタンの選択肢から正解だと思う意味を一つを選び、別で用意したボタンを押すことで正誤判定を行い、TextViewに正解や、不正解(+正しい意味)を表示するというような感じです。
そこで、とりあえずの段階で、ランダムに選んンでWordviewに記述した単語の意味をラジオボタン1に、そして別でランダムに3つの(他の単語の)の意味を取り出してきて、ラジオボタン2~4のテキストにsetしようと考えています。
しかし、今のままのコードでは、2~4がすべて同じ結果を表示してしまいます。
SELECT文はラジオボタン一つに対し一つ用意すべきなのでしょうか、、、
それにデータベースより取り出した(正解の意味も含めた)合計4つの意味をラジオボタンにランダムに格納する方法が分かりません。Listを作り Collections.shuffle(リスト名);でシャッフルすべきなのでしょうか、、、
java
1public class MeanActivity extends AppCompatActivity { 2 private TextView wordView; 3 4 @Override 5 protected void onCreate(Bundle savedInstanceState) { 6 super.onCreate(savedInstanceState); 7 setContentView(R.layout.activity_mean); 8 9 DataBaseHelper dbhelper = new DataBaseHelper(this); 10 SQLiteDatabase databaseObject = dbhelper.getReadableDatabase(); 11 12 String query = "SELECT * " + "FROM WordData order by random()"; 13 String sql = "SELECT * " + "FROM WordData order by random() limit 3"; 14 Cursor cursor = databaseObject.rawQuery(query, null); 15 Cursor cursor1 = databaseObject.rawQuery(sql, null); 16 cursor.moveToFirst(); 17 cursor1.moveToFirst(); 18 19 String word = cursor.getString(0); 20 String mean1 = cursor.getString(3); 21 String mean2 = cursor1.getString(3); 22 String mean3 = cursor1.getString(3); 23 String mean4 = cursor1.getString(3); 24 25 wordView = (TextView) findViewById(R.id.word_view); 26 wordView.setText(word); 27 28 RadioButton rg1 = (RadioButton) findViewById(R.id.RadioButton1); 29 rg1.setText(mean1); 30 31 RadioButton rg2 = (RadioButton) findViewById(R.id.RadioButton2); 32 RadioButton rg3 = (RadioButton) findViewById(R.id.RadioButton3); 33 RadioButton rg4 = (RadioButton) findViewById(R.id.RadioButton4); 34 35 rg2.setText(mean2); 36 rg3.setText(mean3); 37 rg4.setText(mean4); 38 39 } 40}
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/10/20 08:11
2016/10/20 08:24
2016/10/20 08:53