在我正在制作的应用程序中,我有一个“if”语句,如果将两个字符串保存到某个字符串,则会弹出一个 AlertDialog。对于某些用户,这些字符串将保持不变,因此当他们启动设置为显示 ALertDialog 的活动时,会不断弹出此 AlertDialog。代码(我还没有 setNegativeButton ):
private void SetWarning() {
AlertDialog.Builder alert = new AlertDialog.Builder(this);
alert.setTitle("Warning!");
alert.setMessage(R.string.Warning);
alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//No action needed; just close the AlertDialog.
}
});
alert.show(); }
这是我的一段代码,它使这个 AlertDialog 出现:
SharedPreferences sharedPreferences = getSharedPreferences("MY_PREF", MODE_PRIVATE);
String s = sharedPreferences2.getString("MEM1", "");
String s2 = sharedPreferences2.getString("MEM2", "");
if(s.equals("String1") && s2.equals("String2"))
SetWarning();
有没有办法制作“alert.setNegativeButton”方法,如果用户单击它,AlertDialog 将永远不会再次出现?我正在考虑以某种方式实现另一个 SavedPreferences 以保存用户的选择,然后防止 AlertDialog 再次出现。到目前为止,没有运气。除了人们询问如何禁用 AlertDialog 中的按钮外,我什么也没找到。
谢谢!
新更新的代码:
alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
//set sharedpreferences boolean called DONTSHOWAGAIN to true;
SharedPreferences sharedPreferences2 = getSharedPreferences("MY_PREF", MODE_PRIVATE);
Boolean dontShowAgain = sharedPreferences2.getBoolean("dontShowAgain ", false);
SharedPreferences.Editor ed = sharedPreferences2.edit();
ed.putBoolean("dontShowAgain", true);
ed.commit();
}
});
alert.show(); }
private void StringWarning() {
SharedPreferences sharedPreferences2 = getSharedPreferences("MY_PREF", MODE_PRIVATE);
String s = sharedPreferences2.getString("MEM1", "");
String s2 = sharedPreferences2.getString("MEM2", "");
if(s.equals("String1") && s2.equals("String2")){
if(!dontShowAgain){
SetWarningExamConflict();
}
}