0

以下のButtononClickメソッドからStringsfirstChoicesecondChoiceの値を取得し、同じクラスで使用しようとしています。問題は、voidメソッドから文字列値を返すことができないことを知っていることです。私が以下に持っているものを見てください:

 public class Question extends Activity implements OnClickListener{

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_question);

        Choice1 = (Button) findViewById(R.id.Choice4);
        Choice1.setOnClickListener(Question.this);

        Choice2 = (Button) findViewById(R.id.Choice5);
        Choice2.setOnClickListener(Question.this);

        firstChoice;
        secondChoice;

    public void onClick(View view) {
            switch(view.getId()) {
              case R.id.Choice4:
                  showSelectPicksDialog();
                  Button b = (Button)view;
                String firstChoice = b.getText().toString();

                break;

              case R.id.Choice5:
                  showSelectPicksDialog2();
                  Button v = (Button)view;
                String secondChoice = v.getText().toString();// 
                break;

              default:
                break;
            }
          }

それらの値を取得する方法はありますか?現在のように、on Createメソッドで値を呼び出そうとすると、firstChoiceとsecondChoiceを「タイプに解決できません」というエラーが表示されます。

4

1 に答える 1

0

多くの方法があります。たとえば、クラス変数を使用できます。

public class Question extends Activity implements OnClickListener{
    String firstChoice;    
    String secondChoice;    
    Button choice1;
    Button choice2;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_question);

        choice1 = (Button) findViewById(R.id.Choice4);
        choice1.setOnClickListener(Question.this);

        choice2 = (Button) findViewById(R.id.Choice5);
        choice2.setOnClickListener(Question.this);

        public void onClick(View view) {
            switch(view.getId()) {
            case R.id.Choice4:
                showSelectPicksDialog();
                Button b = (Button)view;
                firstChoice = b.getText().toString();
                break;

            case R.id.Choice5:
                showSelectPicksDialog2();
                Button v = (Button)view;
                secondChoice = v.getText().toString();
                break;

            default:
                break;
            }
        }
    }
}
于 2012-10-22T22:30:17.830 に答える