1
问题在于Toast出现的次数与您打开设置活动次数相同,而每次点击CheckBox后我只需要一次。为什么吐司会出现比我需要的时间更多的时间?
在此先感谢大家,他们试图改进我的代码。
的代码是如何工作的更详细的描述:
- 我去设置活动和检查框
- 吐司出现一次
- 我回到以前的活动使用后退按钮,什么也不做,再次返回到设置活动并选中一个框。
- Toast出现两次
- 我使用“返回”按钮返回上一个活动,什么都不做,再次返回到“设置”活动并选中一个框。
- 吐司出现三次
等等
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(); } }
}