我有三个片段,在我使用CheckBoxes的所有三个片段中,我希望当片段切换时,复选框保持原样。
Button.OnClickListener btnOnClickListener=new Button.OnClickListener(){
public void onClick(android.view.View v) {
Fragment newFragment;
if(v==btn1){
newFragment=new AwardTypeFragment();
}else if(v==btn2){
newFragment =new StateFragment();
}else if(v==btn3){
newFragment= new CityFragment();
}else if(v==btn4){
newFragment=new GenderFragment();
}else{
newFragment=new StartFragment();
}
FragmentTransaction transaction=getFragmentManager().beginTransaction();
transaction.replace(R.id.myFragment, newFragment);
transaction.addToBackStack(null);
transaction.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE);
transaction.commit();
}
答案 0 :(得分:0)
将复选框的状态存储在活动中。选中复选框后,请调用以下内容:
getActivity().setCheckbox1State(true);
同样,通过以下方式获取州:
getActivity().getCheckbox1State();
将Checkbox1名称引用替换为它所代表的实际值。在活动中,您需要实现get和set方法。这是一个简单的例子;您可以创建一个更优雅的界面来处理所有复选框并保存状态。
答案 1 :(得分:-1)
//在片段构造器的Oncreate中
public View onCreateView(@NonNull LayoutInflater inflater,
ViewGroup container, Bundle savedInstanceState) {
....
View root = inflater.inflate(R.layout.fragment_home, container, false);
CheckBox favoritosBox = (CheckBox) root.findViewById(R.id.checkBoxFav);
favoritosBox.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
//ACTION
}
});