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

问题描述 投票:1回答:1

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

事件单击片段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;

            }
        }
    });
android radio-button fragment
1个回答
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',那么您只需从适配器获取片段并调用此片段的任何公共方法来设置状态。

© www.soinside.com 2019 - 2024. All rights reserved.