2017-01-09 5 views
0

各ボタンのテキストを取得しようとすると、それぞれに正しくテキストが表示されますが、印刷しようとすると同じテキストが表示されます。オプションDのテキストプログラムで作成されたボタンのAndroidの問題

private void displayQuestion() { 
      final ArrayList<String> options = new ArrayList<>(); 
      for (int i = 0; i < questions.size(); i++){ 
       Questions diaplayQuestion = questions.get(i); 
       question.setText(diaplayQuestion.getQuestion()); 
       options.add(0, diaplayQuestion.getOptionA()); 
       options.add(1, diaplayQuestion.getOptionB()); 
       options.add(2, diaplayQuestion.getOptionC()); 
       options.add(3, diaplayQuestion.getOptionD()); 
       correctOption = diaplayQuestion.getCorrectOption(); 
      } 
      for (int i = 0; i < options.size(); i++) { 
       btn = new Button(GameplayActivity.this); 
       LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT); 
       params.setMargins(10, 10, 10, 0); 
       btn.setLayoutParams(params); 
       btn.setText(options.get(i)); 
       btn.setId(i); 
       linearLayout.addView(btn); 
       btn.setOnClickListener(new View.OnClickListener() { 
        @Override 
        public void onClick(View view) { 
         System.out.println(view.getId()); 
        } 
       }); 
      } 
     } 

答えて

0

Viewタグを使用して情報を保存したい場合は、公式の文書から:

タグとは異なり、タグはビューの識別には使用されません。タグは基本的にビューに関連付けることができる余分な情報です。ビューはビューに関連するデータを別の構造に格納するのではなく、ビュー自体に格納するのに便利です。

だからあなたの場合には、それはこのようになります:

btn = new Button(GameplayActivity.this); 
... 
btn.setTag(options.get(i)); // I assume that value is String 
... 
btn.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View view) { 
     System.out.println((String) view.getTag()); 
    } 
}); 
関連する問題