4 つの RadioButton を含む RadioGroup があります。クリックするとすべて同じメソッドが呼び出されます。ボタンに関連付けられているテキストを取得する方法はわかっていますが、選択されているボタンの名前を取得する方法がわかりません。
きっと道があるはずですよね?
助けてくれてありがとう
おそらくこれは途中であなたを助けることができます:
// 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();
それがうまくいくかどうか私に知らせてください:)常に学びそして助けることを熱望しています!
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();
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());