ラジオ グループに追加し、線形レイアウトに追加されるラジオ ボタンの値を取得しようとしています。次に、アクティビティからクラスを呼び出します。これは私のコードです:
MultiChoice.java
public class MultipleChoice {
Context context;
List<String> choice_values;
String hint;
public MultipleChoice (Context context, String hint, List<String> choice_value_array){
choice_values = new ArrayList<String>();
this.context = context;
this.choice_values = choice_value_array;
this.hint = hint;
}
public View createRadioGroup(){
LinearLayout llContainer = new LinearLayout(context);
llContainer.setOrientation(LinearLayout.VERTICAL);
llContainer.addView(hintTextView());
llContainer.addView(radioButtons());
return llContainer;
}
private TextView hintTextView() {
// TODO Auto-generated method stub
TextView tvHint = new TextView(context);
tvHint.setText(hint);
return tvHint;
}
private RadioGroup radioButtons() {
// TODO Auto-generated method stub
RadioGroup rbGroup = new RadioGroup(context);
rbGroup.setOrientation(RadioGroup.VERTICAL);
for (String value : choice_values){
RadioButton rbValue = new RadioButton(context);
rbGroup.addView(rbValue);
rbValue.setText(value);
}
return rbGroup;
}
}
これは、アクティビティでコントロールを作成する方法です。
LinearLayout template_container = (LinearLayout) findViewById(R.id.llTemplate);
MultipleChoice mcControl = new MultipleChoice(getApplicationContext(), parts[0], choices);
control = mcControl.createRadioGroup();
template_container.addView(control);
私はこのようなことを試しましたが、うまくいかないので正しいアプローチを試みているかどうかわかりません:
View child = template_container.getChildAt(i);
LinearLayout v = ((LinearLayout)child);
View rgView = v.getChildAt(1);
RadioGroup rg = ((RadioGroup)rgView);
RadioGroup
が追加され、正常に表示されます。やりたいことは、選択したラジオ ボタンの値を取得することだけです。前もって感謝します!
編集
これが an の値を取得する方法であり、EditText
正常に機能します。
コントロールを取得して、ビューを含むリストに追加し、ビューに次のものが含まれている場合は値を取得するためにこれを行いますEditText
。
String text = ((EditText)view).getText().toString().trim();