Java 带复选框的片段
我有三个片段,在所有三个片段中我使用了复选框,我希望当片段切换时,复选框保持原样Java 带复选框的片段,java,android,Java,Android,我有三个片段,在所有三个片段中我使用了复选框,我希望当片段切换时,复选框保持原样 Button.OnClickListener btnOnClickListener=new Button.OnClickListener(){ public void onClick(android.view.View v) { Fragment newFragment; if(v==btn1){ newFragment=new AwardTypeFragment
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();
}
在“活动”中存储复选框的状态。选中复选框后,调用类似以下内容:
getActivity().setCheckbox1State(true);
类似地,通过以下方式获取状态:
getActivity().getCheckbox1State();
将Checkbox1 name引用替换为它所表示的实际值。在活动中,您将需要实现get和set方法。这是一个简单的例子;您可以创建一个更优雅的界面来处理所有复选框并保存状态。//在Oncreate of Fragment构造函数中
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
}
});
你的问题是什么?