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);