使用CheckBox进行分段

时间:2015-03-30 13:01:57

标签: java android

我有三个片段,在我使用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();             
}

2 个答案:

答案 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
    }
});