当我通过导航(后退按钮)从一个活动切换到另一个活动时,我遇到显示AlertDialog的问题。
场景是这样的: 1.我的应用程序正在运行,我正在申请的第二页。 2.我按下后退键,但同时第二页的一个场景是执行& AlertDialog在屏幕上打开。 我已按下后退按钮我重定向到主屏幕& AlertDialog不带任何用户输入。
已经使用过这个,但它对我来说不适用。
1. Intent.FLAG_ACTIVITY_NEW_TASK
2. onRetainNonconfigurationInstance() & getLastNonConfigurationInstance()
如果我浏览它,我想在主页(MainActivity)上显示相同的AlertDialog。 我想为我的所有页面做到这一点。
任何人都有任何想法&建议。
谢谢,
答案 0 :(得分:1)
第1步:将您的SharedPreferences放入第二个活动
SharedPreferences myPrefs = getSharedPreferences(
"myPrefs", 0);
SharedPreferences.Editor prefsEditor = myPrefs.edit();
prefsEditor.putString("ALERT","YES");
prefsEditor.commit();
步骤2:
HomeActivity的OnCreate内部写下代码
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
// Getting ALERT from Sharedpreference
myPrefs = getSharedPreferences("myPrefs", 0);
ALERT = myPrefs.getString("ALERT", "NO");
if(ALERT.equals("YES"){
// Write your Code for Showing Alert Dialogue
}else{
setContentView(R.layout.login);
// Write rest og the Code for Your Home Acitivity
}
在完成AlertDialogue之后,您必须在HomeActivity中设置内容视图。
希望它会对你有所帮助。
答案 1 :(得分:0)
如果您想在用户离开第二个活动之前获得用户互动,那么您必须将AlertDialog放在第二个活动的onStop()
或onDestroy()
中,或者如果您想要显示AlertDialog在您的第二个活动关闭并且您处于主要活动之后,您必须将AlertDialog放在主要活动的onActivityResult()
中。 (但为此你必须使用startActivityForResult()
)
答案 2 :(得分:0)
如果你想在第二个Activity上显示警告对话框,那么在启动MainActivity之前,请使用以下概念,
@Override
public void onBackPressed() {
showAlertDialog(SecondActivity.this);
}
private void showAlertDialog(Context mCtx) {
// TODO Auto-generated method stub
AlertDialog.Builder builder = new AlertDialog.Builder(mCtx);
builder.setCancelable(false);
builder.setTitle("Title");
builder.setMessage("Message text !!");
builder.setPositiveButton("OK", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
finish();
}
});
builder.create().show();
}
答案 3 :(得分:0)
试试这个..
@Override
public void onBackPressed() {
// TODO Auto-generated method stub
super.onBackPressed();
final Dialog CloseDialog = new Dialog(Sample.this);
CloseDialog.setTitle("Alert");
CloseDialog.setContentView(R.layout.exit_dialog_box);
ExitButton = (Button) CloseDialog.findViewById(R.id.ExitButton);
CloseExitDilog = (Button) CloseDialog
.findViewById(R.id.CloseExitDialog);
ExitButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
....../////////
}
});
CloseExitDilog.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
///
}
});
CloseDialog.show();
}