以下のコードがぎこちないように見えて申し訳ありません。要約すると、ユーザーが問題の 4 種類の難易度を選択できるクイズ ゲームを作成しています。たとえば、ユーザーがチェックボックス 1 と 3 を選択した場合、以下のコードは、string.xml の文字列配列を String[] NUM_ALL_QuestionNames に格納することを目的としています。
//same for checkbox1,2,3, so here not duplicate //
if (checkbox4=="yes")
{
NUM_EXP_QuestionNames = getResources().getStringArray(R.array.Num_Q_Expert_List);
NUM_EXP_AnswerNames = getResources().getStringArray(R.array.Num_A_Expert_List);
QuestionImport= 0;
QuestionImport = NUM_EXP_QuestionNames.length;
int i =0;
while (i<QuestionImport)
{
String Q_toimport = NUM_EXP_QuestionNames[i];
String A_toimport = NUM_EXP_AnswerNames[i];
NUM_ALL_QuestionNames.add(Q_toimport);
NUM_ALL_AnswerNames.add(A_toimport);
++i;
}
};
NUM_ALLL_QuestionNames = new String[NUM_ALL_QuestionNames.size()]; //convert ArrayList<String> to String[]
NUM_ALLL_AnswerNames = new String[NUM_ALL_AnswerNames.size()]; //convert ArrayList<String> to String[]
最後に、NUM_ALL_Questionnames は、さらに処理するために ArrayList NUM_ALLL_QuestionNames から String[] に変換されます。
次のように設定しようとすると (string.xml から直接抽出)、アプリが正常に動作するため、string.xml 内のファイルに問題はありません。
NUM_ALLL_QuestionNames = getResources().getStringArray(R.array.Num_Q_Simple_List);
NUM_ALLL_AnswerNames = getResources().getStringArray(R.array.Num_A_Simple_List);
質問:
これは String[] 形式の string.xml からのデータであり、List に追加され、この List は最終的に String[] に変換されます。この変換が必要ないような変更はありますか。string.xml が String[] に直接できるとよい
アプリの実行を続けると、logcat はエラーを表示しません。ただし、エミュレーターは黒い画面を保持します。なぜそれが起こるのですか?コードの無限ループはありますか?
どうもありがとう!