おはようございます。Arraylistを使って複数のクイズ(string)を作ったのですが、最初の質問以外ローカライズ出来なくて困っています。上から2つ目のコード"QuizBank"クラス内にある"a01","a02"の様に、resourceフォルダのstrings.xml内に下記の様に設定してQuestionLabel1(textView)にリンクさせて表示させたいのですが、どの様にアプローチすれば良いかアドバイスを頂けないでしょうか? 私はkotlin, java共に初心者です。
<string name="a01">1. would you want..?</string>
<string name="a02">2. What day for...</string> <string name="a03">3. how you will...?</string>
最初にクイズの為の骨組みを作りました。
class QuizSystem { var questionText : String = "" constructor(question: String) { questionText = question }
次に別のクラスにクイズリスト作成
class QuizBank { var list = ArrayList<QuizSystem>() init { val item = QuizSystem("a01") list.add(item) list.add(QuizSystem(question = "a02")) list.add(QuizSystem(question = "a03")) list.add(QuizSystem(question = "a04")) list.add(QuizSystem(question = "a05")) }
最後に別のクラスに上記で作った内容を移動させてアプリに表示しているのですが最初の質問以外思った様にローカライズ出来ていません。
class QuizActivity : AppCompatActivity() { var allQuestions = QuizBank() var questionNumber: Int = 0 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_question_system) nextQuiz() finalTask.visibility = View.INVISIBLE setUpTranslation() } fun setUpTranslation() { for (x in 1..4) { //val str = resources.getString(R.string.test1) var str = getString(R.string.a01) questionLabel1.text = str questionLabel2.text = str } } fun nextQuiz() { val quiz = allQuestions.list[questionNumber].questionText if (questionNumber <= 3) { questionLabel1.text = allQuestions.list[questionNumber].questionText questionLabel2.text = allQuestions.list[questionNumber].questionText } else if (questionNumber == 4) { questionLabel1.text = allQuestions.list[questionNumber].questionText questionLabel2.text = allQuestions.list[questionNumber].questionText nQButton.visibility = View.INVISIBLE finalTask.visibility = View.VISIBLE } }
回答2件
あなたの回答
tips
プレビュー