问题是 Toast 出现的次数与您打开设置活动的次数一样多,而每次单击 CheckBox 后我只需要一次。
在此先感谢所有尝试改进我的代码的人。
代码如何工作的更详细描述:
- 我去设置活动并选中一个框
- Toast 出现一次
- 我使用“后退”按钮返回上一个活动,什么也不做,再次返回“设置”活动并选中一个框。
- Toast 出现两次
- 我使用“后退”按钮返回上一个活动,什么也不做,再次返回“设置”活动并选中一个框。
- Toast 出现 3 次
等等
public class PrefActivity extends PreferenceActivity implements SharedPreferences.OnSharedPreferenceChangeListener { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.pref_screen); Context context = getApplicationContext(); SharedPreferences settings = PreferenceManager.getDefaultSharedPreferences(context); settings.registerOnSharedPreferenceChangeListener(this); } public void onSharedPreferenceChanged(SharedPreferences settings, String key) { Toast mToast; mToast = Toast.makeText(this, "toast text", Toast.LENGTH_SHORT); if(key.equals("checkbox_key")){ mToast.show(); } }
}