Java 为什么单选按钮的onCheckedChanged()不';你不会在安卓系统长大吗?
我有一个Java 为什么单选按钮的onCheckedChanged()不';你不会在安卓系统长大吗?,java,android,onclick,radio-button,oncheckedchanged,Java,Android,Onclick,Radio Button,Oncheckedchanged,我有一个片段。里面有两个单选按钮。我正在尝试在中创建TextView 根据单选按钮用户检查,删除该片段并更改其内容。 下面你可以看到我的代码。我的问题是,当我点击单选按钮时,什么都没有发生/ 似乎没有调用toast消息或setText()。 请帮帮我。 谢谢你 @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
片段
。里面有两个单选按钮。我正在尝试在中创建TextView
根据单选按钮
用户检查,删除该片段并更改其内容。
下面你可以看到我的代码。我的问题是,当我点击单选按钮时,什么都没有发生/
似乎没有调用toast消息或setText()
。
请帮帮我。
谢谢你
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
final View rootView = inflater.inflate(R.layout.activity_search, container,false);
final LinearLayout l = (LinearLayout)inflater.inflate(R.layout.activity_search, container, false);
final TextView tv = new TextView(container.getContext());
tv.setText("Testing...");
l.addView(tv);
RadioGroup radios = (RadioGroup) rootView.findViewById(R.id.radios);
radios.setOnCheckedChangeListener(new OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
tv.setText("changedText");
l.addView(tv);
Toast.makeText(getActivity(), "zzzz", 2000).show();
switch(checkedId) {
case R.id.rbtn_sell:
tv.setText("changedText");
l.addView(tv);
break;
case R.id.rbtn_rent:
RadioButton radioButton = (RadioButton) rootView.findViewById(checkedId);
Toast.makeText(getActivity(), "zzzz" + radioButton.getText(), 2000).show();
break;
}
}
});
return l;
}
问题就在这里。您在l
中对同一布局进行两次充气并返回,但将OnCheckedChangeListener
附加到使用rootView
检索的放射组上。应该是
RadioGroup radios = (RadioGroup) l.findViewById(R.id.radios);
而不是
RadioGroup radios = (RadioGroup) rootView.findViewById(R.id.radios);
同样在
onCheckedChanged
中,您应该删除l.addView
,否则您的应用程序将崩溃,因为TextView
已经作为父级l
您在屏幕上的组与您显示的组不同。感谢百万人。正是你说的。在删除l.addView()之前,我还遇到了一个异常。
RadioGroup radios = (RadioGroup) rootView.findViewById(R.id.radios);