我確實有一個片段充氣包含一個按鈕的佈局。我在onCreateView()
方法中動態地添加了radiogroup
和radiobuttons
。但問題出在該按鈕的onclicklistener
。當檢索radiobutton
在radioGroup
中籤入的文本時,我確實收到nulpointerexception
。如何獲取在onclicklistener中動態添加的單選按鈕的引用?
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
final View v = inflater.inflate(R.layout.variant_choose,null);
Button button = (Button) v.findViewById(R.id.apply_variant_button);
LinearLayout ll = (LinearLayout) v.findViewById(R.id.layout_for_radiobuttons_in_variants);
final RadioGroup rg = new RadioGroup();
rg.setId(View.generateViewId());
rg.setOrientation(LinearLayout.HORIZONTAL);
RadioButton rb[] = new RadioButton[5];
for(int j=0;j<5;j++){
rb[j] = new RadioButton(getActivity());
rb[j].setId(View.generateViewId());
rb[j].setText(j);
rg.addView(rb[j]);
}
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
RadioButton rb1 = (RadioButton) v.findViewById(rg.getCheckedRadioButtonId());
String str1 = (String) rb1.getText();
}
});
return v;
}
視圖V包含動態創建radiogroup
和按鈕,直到onCreateView
。但後來在onclicklistener
它不是這種情況。它只包含在xml文件中定義的按鈕?這可能是什麼原因?我怎樣才能得到radiobutton
的文字?
您應該使用不帶ID的標籤。 –
我可能指向這個SO帖子:http://stackoverflow.com/questions/8460680/how-can-i-assign-an-id-to-a-view-programmatically我認爲它可以幫助你理解ID有點更好地幫助您發現一些以編程方式實現它們的方法。 –