Android 复选框首选项
假设我在我的android应用程序首选项中有一个复选框Preference,它询问用户是否想锁定应用程序,当我们点击它时,会打开一个对话框来询问凭据。现在的问题是,如果此时应用程序崩溃(通过强制关闭或按home键,然后将其从最近的应用程序中删除),复选框首选项将保持选中状态,并锁定我的应用程序,因为当我们单击复选框首选项时,将触发复选框首选项更改()并将其选中。那我怎么能避免呢?我已经在CheckboxPreferenceChanged()事件中创建了该对话框。在对话框成功返回之前,不要更改首选项 例如:Android 复选框首选项,android,android-activity,Android,Android Activity,假设我在我的android应用程序首选项中有一个复选框Preference,它询问用户是否想锁定应用程序,当我们点击它时,会打开一个对话框来询问凭据。现在的问题是,如果此时应用程序崩溃(通过强制关闭或按home键,然后将其从最近的应用程序中删除),复选框首选项将保持选中状态,并锁定我的应用程序,因为当我们单击复选框首选项时,将触发复选框首选项更改()并将其选中。那我怎么能避免呢?我已经在CheckboxPreferenceChanged()事件中创建了该对话框。在对话框成功返回之前,不要更改首选
checkBoxPreference.setOnPreferenceChangeListener(new Preference.OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, final Object newValue) {
if (!(newValue instanceof Boolean)) return false;
new AlertDialog.Builder(getContext())
.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// Check if credentials ok and save the preference
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getContext());
prefs.edit()
.putBoolean("CHECKBOX", (Boolean) newValue)
.commit();
}
});
// By returning false we don't update the preference
return false;
}
});