【Android開発】ボタンのテキスト表示
Android初心者です。現在画面遷移先の画面に配列で設定した質問文、選択肢を表示するアプリを制作しています。質問文はTextView、選択肢は2つのButtonにテキストとして表示する。画面遷移した後にsetQuestion()、setChoiceを呼び出したいんですが実機で試したところ、画面遷移した後に「問題が発生しため、(アプリ名)を終了します」とポップアップが出て、アプリが落ちます。
この2つのメソッドをonCreateに入れるのは間違なのでしょうか?どうすればうまくいきますか?初心者なのでうまく書けてないかも知れません。
よろしくお願いします。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_sub);
setChoice();
setQuestion();
}
int number = 0; //質問番号
//選択肢
Button button1;
Button button2;
Button button3;
Button button4;
//質問文を配列に格納
static String question[] = {
"質問文1",
"質問文2",
};
//選択肢
static String choice[][] = {
{"1番", "2番", "3番", "4番"},
{"1番", "2番", "3番", "4番"},
};
//問題の回答
static String answer[] = {
"2番", "4番"
};
//出力
//質問文を表示
public void setQuestion() {
String setQuestion = question[number];
//
TextView question = (TextView) findViewById(R.id.Question);
question.setText(setQuestion);
}
//選択肢の表示
public void setChoice() {
TextView button1 = (Button) findViewById(R.id.button1);
TextView button2 = (Button) findViewById(R.id.button2);
button1.setText(choice[number][0]);
button2.setText(choice[number][1]);
}
xml
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:text="Question"
android:id="@+id/Question"
android:textSize="40dp"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="81dp" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button1"
android:textSize="30dp"
android:onClick="choiceClick"
android:layout_above="@+id/button2"
android:layout_centerHorizontal="true" />
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/button2"
android:textSize="30dp"
android:onClick="choiceClick"
android:layout_alignParentBottom="true"
android:layout_alignLeft="@+id/button1"
android:layout_alignStart="@+id/button1" />
お礼
早々のアドバイスありがとうございます。 プログラムを実行したところキチンと表示されました。 レイアウトの表示が縦長になっており、非常に気持ち悪いレイアウトになっています。 このまま使用するしか無さそうですね。 ありがとうございました。