【发布时间】:2016-03-17 15:24:38
【问题描述】:
问题是 Toast 出现的次数与您打开 Settings 活动的次数一样多,而我每次单击 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(); } }}
【问题讨论】:
标签: android android-toast preferencescreen android-sharedpreferences checkboxpreference