1

4 つの RadioButton を含む RadioGroup があります。クリックするとすべて同じメソッドが呼び出されます。ボタンに関連付けられているテキストを取得する方法はわかっていますが、選択されているボタンの名前を取得する方法がわかりません。

きっと道があるはずですよね?

助けてくれてありがとう

4

3 に答える 3

1

おそらくこれは途中であなたを助けることができます:

// radioGroup - you need to set this after creating the radiogroup, by findViewById done in the right place or just assigning upon creating it, depending on how you create your layouts.
RadioButton radioButton = (RadioButton) findViewById(radioGroup.getCheckedRadioButtonId());
String text = radioButton.getText().toString();

それがうまくいくかどうか私に知らせてください:)常に学びそして助けることを熱望しています!

于 2012-04-15T09:57:11.207 に答える
0

View.OnClickListenerそれぞれに使用していると思いますRadioButton。正しい?

もしそうなら、それをしないでください。RadioButtonクリックを処理する最も簡単な方法は、RadioGroup.OnCheckedChangeListener代わりに使用することです。

あなたのonCreate(...)アフターコールsetContentView(...)RadioGroup...

RadioGroup rg = (RadioGroup) findViewById(R.id.my_rg);
rg.setOnCheckedChangeListener(...);

リスナーはonCheckedChangedこんな感じ…

public void onCheckedChanged(RadioGroup group, int checkedId)

...リスナーで次のことを行うだけです...

RadioButton radioButton = (RadioButton) findViewById(checkedId);
String text = radioButton.getText();
于 2012-04-15T10:25:37.993 に答える
0

switch ケースを使用して onclick を view.getId() と比較し、ラジオボタンの各 id を使用してから、ボタン名の完全なフェッチを行う必要があります。

以下はサンプルコードです::

switch (checkedRadioButton) {
  case R.id.radiobutton1 : radioButtonSelected = "radiobutton1";
                                  break;
  case R.id.radiobutton2 : radioButtonSelected = "radiobutton2";
                              break;
  case R.id.radiobutton3 : radioButtonSelected = "radiobutton3";
                              break;
}

リンクを使用する

または、以下のコードも使用できます

RadioGroup rg = (RadioGroup)findViewById(R.id.radiogroup);
RadioButton radioButton = (RadioButton) findViewById(rg.getCheckedRadioButtonId());
Log.d("checked",radioButton.getText().toString());
于 2012-04-15T09:53:08.920 に答える