我创建了一个对话框,每次用户打开应用程序时都会打开该对话框。因为这可能会很快打扰用户,所以我想在第一次启动应用程序时打开它,并且只有在那时才打开它。
我试过以下:
public boolean openDialog = true;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (openDialog) {
launchDialog();
}
}
private void launchDialog() {
AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
context);
// set title
alertDialogBuilder.setTitle("Your Title");
// set dialog message
alertDialogBuilder
.setMessage("Click yes to exit!")
.setCancelable(false)
.setPositiveButton("Yes",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
//don't open Dialog by next launch
openDialog = false;
// if this button is clicked, close
// current activity
MainActivity.this.finish();
}
})
.setNegativeButton("No",new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,int id) {
// if this button is clicked, just close
// the dialog box and do nothing
dialog.cancel();
}
});
// create alert dialog
AlertDialog alertDialog = alertDialogBuilder.create();
// show it
alertDialog.show();
}
感谢帮助
阿德里安
最佳答案
您可以使用简单的 sharedPreferences:
private SharedPreferences mPrefs;
private Editor mEditor;
初始化:
mPrefs = PreferenceManager.getDefaultSharedPreferences(context);
mEditor = mPrefs.edit();
然后当对话框第一次出现时,保存状态例如:
mEditor.putBoolean(FIRST_TIME_USED_KEY,true);
mEditor.commit();
当再次打开应用程序时,首先询问对话框之前是否打开过:
boolean isUsedBefore = mPrefs.getBoolean(FIRST_TIME_USED_KEY,false);
if(isUsedBefore==true){
//do nothing
}else{
dialog.show();
}
FIRST_TIME_USED_KEY 应该是一个存储在 strings.xml 中的字符串。
关于java - 应用程序首次启动时应打开对话窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28279604/