我正在创建AlertDialogonBackPressed,其中包含退出和速率应用程序按钮。
AlertDialog将只显示一次如果Person Rate应用程序,则该部分工作正常。
但问题是,在有人对应用程序进行评级、布尔值更改之后,应用程序将不会显示AlertDialog,因此onBackPressed将被禁用。我怎样才能改变?
这是我的代码:
@Override
public void onBackPressed() {
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if (!prefs.getBoolean("firstTime", false)) {
new AlertDialog.Builder(this)
.setCancelable(false)
.setTitle("Rate us")
.setMessage("Thank you for choosing our app! We will be very thankful if you can spend your valuable time to give this app a good rate in Google Play market!")
.setPositiveButton("Rate us", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Uri uri = Uri.parse("market://details?id=" + getPackageName());
Intent intent = new Intent(Intent.ACTION_VIEW, uri);
startActivity(intent);
SharedPreferences.Editor editor = prefs.edit();
editor.putBoolean("firstTime", true);
editor.commit();
}
})
.setNegativeButton("Exit", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
((Activity) context).finish();
}
})
.show();
};
}
}
我补充说
if (!prefs.getBoolean("firstTime", true)){
((Activity) context).finish();
}
但它什么也没做。onbackpressed仍然被禁用。
总结:第一次更改布尔值后,onbackpressed被禁用,我不能使用该按钮离开/关闭应用程序。我该怎么解决?
最佳答案
简单,只需添加其他部分来处理如下:
@Override
public void onBackPressed() {
super.onBackPressed();
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if (!prefs.getBoolean("firstTime", false)) {
//show your dialog
}else{
super.onBackPressed();
}
}
关于android - 更改SharedPreferences后,AlertDialog onBackPressed不会发生,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23405146/