我正在使用Exit和Rate App按钮创建AlertDialog onBackPressed。 AlertDialog只会显示一次人员费用应用程序,该部分工作正常。 但问题是,在有人对应用程序进行布尔更改后,应用程序将不会显示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仍然被禁用。 总结:在更改布尔firstTime之后,onBackPressed被禁用,我无法使用该按钮离开/关闭应用程序。我该如何解决这个问题?
答案 0 :(得分:0)
简单地添加else部分来处理这个:
@Override
public void onBackPressed() {
super.onBackPressed();
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
if (!prefs.getBoolean("firstTime", false)) {
//show your dialog
}else{
super.onBackPressed();
}
}