在RadioGroup

时间:2015-09-06 19:37:26

标签: android android-fragments radio-button

我有一个带有两个RadioButtons的RadioGroup的活动。 RadioButtons的行为类似于制表符,应根据单击的按钮创建两个不同的片段。问题是碎片' onCreateView方法被调用两次,我无法找出原因。

这是我的活动:

public class MyActivity {

private RadioGroup radioGroup;
private FrameLayout frame;
private RadioButton radio1;
private RadioButton radio2;

private RadioOneFragment radio1Fragment;
private RadioTwoFragment radio2Fragment;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.my_activity_layout);

    radio1 = (RadioButton) findViewById(R.id.radio1);
    radio2 = (RadioButton) findViewById(R.id.radio2);

    radioGroup = (RadioGroup) findViewById(R.id.radioGroup);
    radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            switch (checkedId) {
                case R.id.radio1:
                    radio1Fragment = new RadioOneFragment();
                    getFragmentManager().beginTransaction()
                            .replace(R.id.radio_frg_container, radio1Fragment)
                            .commit();
                    break;
                case R.id.radio2:
                    radio2Fragment = new RadioTwoFragment();
                    getFragmentManager().beginTransaction()
                            .replace(R.id.radio_frg_container, radio2Fragment)
                            .commit();
                    break;
            }
        }
    });
    if (getIntent().getExtras() != null) {
        radioGroup.check(R.id.radio2);
    } else {
        radioGroup.check(R.id.radio1);
    }
}
}

非常感谢任何帮助。感谢。

2 个答案:

答案 0 :(得分:1)

我在这里找到了答案:depedency plugin

您应该只使用radio1.setChecked(true)而不是user = my_unix_username

答案 1 :(得分:0)

尝试一个片段对象

authenticator:admin

的实施
authenticator:manager

private RadioOneFragment radio1Fragment;
private RadioTwoFragment radio2Fragment;