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(); } }
}