单选按钮以片段形式传递数据
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',那么您只需从适配器获取片段并调用此片段的任何公共方法来设置状态。
以上是关于单选按钮以片段形式传递数据的主要内容,如果未能解决你的问题,请参考以下文章