我想在AlertDialog中存储复选框状态,即使用户离开应用程序。
我该怎么做?
我尝试通过SharedPreferences,但它不能让它工作。
private AlertDialog showAlertDialog() {
ArrayList<Integer> selectedItems = new ArrayList<>();
AlertDialog.Builder alertDialog = new AlertDialog.Builder(MainActivity.this);
alertDialog.setTitle("Selecione o dia");
String[] days = {"Domingo","Segunda-Feira","Terça-Feira","Quarta-Feira","Quinta-Feira",
"Sexta-Feira","Sabado"};
boolean[] checkedItems = {false, false, false, false, false, false, false};
alertDialog.setMultiChoiceItems(days, checkedItems, new DialogInterface.OnMultiChoiceClickListener() {
@Override
public void onClick(DialogInterface dialog, int i, boolean isChecked) {
}
});
alertDialog.setPositiveButton(R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
Toast.makeText(MainActivity.this, "Dia(s) registrado(s)", Toast.LENGTH_LONG).show();
}
});
alertDialog.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int id) {
}
});
AlertDialog alert = alertDialog.create();
alert.setCanceledOnTouchOutside(false);
alert.show();
return alertDialog.create();
}
2条答案
按热度按时间wrrgggsh1#
首先,在你的代码中没有保存用户选择的部分,所以不清楚你是如何在SharedPreferences中保存它的。
你可以试试这个:
1.当用户单击
Ok
时,创建一个包含用户选择的字符串并将其保存在SharedPreferences中。1.在显示
AlertDialog
之前读取预先保存的选择yhqotfr82#
使用SharedPreferences official docs为什么它在你的终端不起作用?
要写入共享首选项文件,请通过调用SharedPreferences上的edit()创建SharedPreferences.Editor。
注意:通过调用EncryptedSharedPreferences对象而不是SharedPreferences对象上的edit()方法,可以更安全地编辑共享首选项。要了解更多信息,请参阅如何更安全地使用数据的指南。
以下是通用共享首选项片段:
检查下面链接中的代码,并将您的逻辑调整为布尔和复选框:
https://www.tutorialspoint.com/android/android_shared_preferences.htm