当我从一个 activity 转到另一个时如何显示警报对话框?
How to show Alert dialog when i go from one activity to other?
我有 2 个活动,我想在从 Activity B 移动到 Activity A 时显示警报对话框。
这就是我从一个 activity 到另一个的方式。
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();
}
我应该把这个对话框放在哪里?
编辑了我的问题:-
这是我的流程
Activity A > Activity B (10 个片段) > Activity A
现在,当我从 Activity B 移动到 Activity A 时,在 Activity A 启动后,我想显示警报对话框。
注意:仅当我从 Activity B 移动到 Activity A.
您可以使用 Activity#getCallingActivity
来确定 Activity A 是否被 Activity B 打开,并围绕该检查包装您的对话框逻辑。
但是,这需要您使用startActivityForResult
打开Activity A.
我相信这就是您要找的。在要显示对话框的 activity 开始时重写该方法。希望对你有帮助。
@Override
public void onStart(){
super.onStart();
//Your Dialog here
}
对于我来说,我只是简单地这样输入然后对话框就会出来
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_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);
并且在 Activity_A 的 OnActivityResult 中:
@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();
我有 2 个活动,我想在从 Activity B 移动到 Activity A 时显示警报对话框。
这就是我从一个 activity 到另一个的方式。
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();
}
我应该把这个对话框放在哪里?
编辑了我的问题:-
这是我的流程
Activity A > Activity B (10 个片段) > Activity A
现在,当我从 Activity B 移动到 Activity A 时,在 Activity A 启动后,我想显示警报对话框。 注意:仅当我从 Activity B 移动到 Activity A.
您可以使用 Activity#getCallingActivity
来确定 Activity A 是否被 Activity B 打开,并围绕该检查包装您的对话框逻辑。
但是,这需要您使用startActivityForResult
打开Activity A.
我相信这就是您要找的。在要显示对话框的 activity 开始时重写该方法。希望对你有帮助。
@Override
public void onStart(){
super.onStart();
//Your Dialog here
}
对于我来说,我只是简单地这样输入然后对话框就会出来
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_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);
并且在 Activity_A 的 OnActivityResult 中:
@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();