我在一个片段中进行了切换,该片段在MainActivity中使用了片段布局。片段布局由(四个)片段共享。它使用方法loadFragment()
在片段之间进行更改。
其中一个片段中有一个切换按钮,但是每当在片段之间切换时,切换就不会保持其状态。我如何使其持久?我已经尝试过SharedPreferences。
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_mufradat_harian, container, false);
mufradatSwitch = v.findViewById(R.id.switchMufradat);
mufradatSwitch.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
if(mufradatSwitch.isChecked()){
SharedPreferences pres = PreferenceManager.getDefaultSharedPreferences(getContext());
Boolean checked = pres.edit().putBoolean("checked", true).commit();
}else{
SharedPreferences pres = PreferenceManager.getDefaultSharedPreferences(getContext());
Boolean checked = pres.edit().putBoolean("checked", false).commit();
}
}
});
return v;
}
谢谢。
答案 0 :(得分:1)
这不是问题,这是正常的行为,因为每次都重新创建该片段。但是为了保持切换按钮的状态,您需要将状态保存到一个不会更改的模型中,该模型应该在Activity
内部,并将该模型传递给片段以获取的状态。该模型的开关按钮,并将其交给开关按钮。
activity
中。