单选按钮以片段形式传递数据

时间:2017-12-24 07:32:41

标签: android radio-button fragment

我在fragmentA中有一些RadioButton,还有fragmentB中的一些RadioButton 我希望当FragmentB中的其中一个isChecked(FragmentA)禁用所有单选按钮时。 相同的活动主持这些片段。

事件单击片段A中的单选按钮:

   RadioGroup radioGroup = view.findViewById(R.id.readingGroup);
    radioGroup.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup radioGroup, @IdRes int i) {
            switch (i) {
                case R.id.btnNormalD:
                    //code
                    break;
                case R.id.btnAbsence:
                    //code
                    break;
                case R.id.btnWithAnObstacle:
                    //code
                    break;
                case R.id.btnHaunted:
                    //code
                    break;
                case R.id.btnDestroyed:
                    //code
                    break;
                case R.id.btnNoSubscribersFound:
                    //code
                    break;
                case R.id.btnGround:
                    //code
                    break;
                case R.id.btnInterrupted:
                    //code
                    break;

            }
        }
    });

1 个答案:

答案 0 :(得分:0)

如果您的片段共享除ViewPager以外的同一容器,则您可以使用Bundle在片段之间传递数据。 无论何时进行事务设置,都要将单选按钮的状态捆绑并将其验证为下一个片段。

 Fragment fragment=new FragmentA();
    Bundle bundle=new Bundle();
    bundle.putBoolean("show",false);// Pass the data here
    fragment.setArguments(bundle);
    getSupportFragmentManager().beginTransaction()
            .add(fragment,R.id.frame).commit();

你可以在下一个片段中得到这个。

 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View view=inflater.inflate(R.layout.fragment_2,null);
    if(getArguments()!=null){
        boolean show=getArguments().getBoolean("show",true);
        if(show){
            // Do action here 
        }else{
            // Do action here
        }
    }
    return view;
}

如果你正在使用`ViewPager'然后你可以简单地从适配器获取片段并调用该片段的任何公共方法来设置状态。