目前我正在处理两个toggle_buttons,两者都工作正常,两者都在不同的页面上,保存状态,但我遇到了问题,当我点击第1页的toggle_button_1时,它会自动设置在第2页的toggle_button_2上,我想要做的是,当我点击第1页上的toggle_button_1时,它会禁用第2页上的toggle_button_2,直到并且除非我将toggle_button_1设置为关闭,否则toggle_button_2将保持禁用状态。我在不同页面上的两个toggle_buttons使用此代码。
任何人都可以帮我完成任务吗?
SharedPreferences sharedPreferences = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());
s2.setChecked(sharedPreferences.getBoolean("toggleButton", false));
s2.setOnClickListener(new ToggleButton.OnClickListener() {
public void onClick(View v) {
SharedPreferences sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(getApplicationContext());
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putBoolean("toggleButton", s2.isChecked());
editor.commit();
答案 0 :(得分:0)
我不确定不同的“网页”是什么意思 - 您的意思是Activities或Fragments,还是其他什么?
在任何一种情况下,我都会从你的描述中猜出某种ID或密钥是相同的 - 甚至可能是xml layout中的某些内容。
如果它们是不同的活动,那么可能存在竞争条件或与应用程序生命周期有关的因素导致数据变坏;但是在走向理论路径太远之前,要检查所有变量,ID和密钥,然后进行双重和三重检查。
如果您提供更多信息,有人可能会更有效地回答。关键信息可能包括任何异步任务或有关活动如何开始的详细信息,以及澄清应用程序结构和生命周期的其余部分。