如何显示警报对话框,当我从一个活动到另一个



我有2个活动,我想显示警报对话框当我从活动B移动到活动a

我就是这样从一个活动转到另一个活动的。

Intent intent = new Intent(Activity_B.this,
    Activity_A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);                   

现在,当我到达Activity_A时,我想在下面显示警告对话框。

    AlertDialog.Builder builder = new AlertDialog.Builder(context);
    builder.setMessage(context.getString(R.string.xxxx));
    builder.setPositiveButton(context.getString(R.string.ok_button), new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
        }
    });
    alertDialog = builder.create();
    alertDialog.show();
}

我应该把这个对话框放在哪里?

编辑我的问题:-

Here is My Flow

活动A>活动B(10片段)>活动A

现在当我从活动B移动到活动A,活动A启动后,我想显示警告对话框。注意:只有当我从活动B移动到活动a时

对于我来说,我只是简单地这样写然后对话框就会出现

  public class AddItem extends Activity {
    @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_add_item);
            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setMessage(context.getString(R.string.xxxx));
            builder.setPositiveButton(context.getString(R.string.ok_button), new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
        }
    });
    alertDialog = builder.create();
    alertDialog.show();
    }
    }

您可以使用Activity#getCallingActivity来确定活动A是否被活动B打开,并围绕该检查包装您的对话框逻辑。

但是,这需要您使用startActivityForResult打开活动a。

我相信这就是你想要的。在您希望显示对话框的活动开始时重写该方法。希望能有所帮助。

@Override
public void onStart(){
    super.onStart();
    //Your Dialog here
}

终于找到办法了,谢谢大家的回答

我之前总是错的原因是我在Activity_B中使用startActivtyResult,并试图在其中启动警报对话框。这样

Intent intent = new Intent(Activity_B.this,
    Activity_A.class);
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivityForResult(intent,2);

正确的方法是:

从Activity_A调用Activity_B:

  Intent intent = new Intent(Activity_A.this, Activity_B.class);
               map.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
               startActivityForResult(intent, 2);

和OnActivityResult中的Activity_A:

  @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (requestCode == 2) {
            if (resultCode == Activity.RESULT_OK) {
          AlertDialog.Builder builder = new AlertDialog.Builder(context);
          builder.setMessage(context.getString(R.string.xxxx));
          builder.setPositiveButton(context.getString(R.string.ok_button),            new DialogInterface.OnClickListener() {
        @Override
        public void onClick(DialogInterface dialog, int which) {
        }
    });
           alertDialog = builder.create();
           alertDialog.show();
}
        }

在Activity_B中我只是这样调用Activity_A:

 Intent intent = new Intent();
        intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
        setResult(Activity_A.RESULT_OK, intent);
        finish();

相关内容

  • 没有找到相关文章

最新更新