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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单选按钮以片段形式传递数据相关的知识,希望对你有一定的参考价值。

我在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;

            }
        }
    });
答案

如果您的片段共享除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',那么您只需从适配器获取片段并调用此片段的任何公共方法来设置状态。

以上是关于单选按钮以片段形式传递数据的主要内容,如果未能解决你的问题,请参考以下文章

数据从父片段传递到选项卡片段(子) - Android

在 NavigationUI 的同一主机活动上传递数据并更新片段文本/按钮

如何使用菜单按钮将数据从活动传递到android中的片段?

如何在活动和浏览器片段之间传递值? [复制]

如何以编程方式更改表格单元格中单选按钮组的单选按钮?

如何将活动 UI 的点击传递到地图片段以将地图更改为 MAP_TYPE_HYBRID