android - 如何显示不同 Activity 的警报

标签 android android-activity

我有一个 Activity 和第二个 Activity 。在第二个 Activity 中,我需要关闭 Activity ,然后然后再次向第一个 Activity 中的用户显示提醒。

这是我用来发出警报和关闭 Activity 的当前代码:

String message = "message";

AlertDialog alertDialog = new AlertDialog.Builder(SecondActivity.this).create();
alertDialog.setMessage(message);
alertDialog.show();

alertDialog.setOnDismissListener(new OnDismissListener() 
{
    public void onDismiss(final DialogInterface dialog) 
    {
        finish();
    }
});

那么我怎样才能使第二个 Activity finishes ,然后一旦回到第一个 Activity ,就向用户显示警报?

我也试过这个:

String message = "message";

finish();

AlertDialog alertDialog = new AlertDialog.Builder(FirstActivity.class).create();
alertDialog.setMessage(message);
alertDialog.show();

但是我得到这个错误:

The constructor AlertDialog.Builder(Class<FirstActivity>) is undefined

最佳答案

您需要使用 startActivityForResult() 方法来启动第二个 Activity 。然后,一旦第二个 Activity 关闭,就会调用第一个 Activity 的 onActivityResult() 方法。在那里你可以打开一个对话框。这是代码示例。

class SecondActivity extends Actvitiy {

    // for instance you close your activity here
    public void onClick(View view) {
        // you have an int to get back
        int resultValue = ...;

        // store your variables into resulting intent
        Intent data = new Intent();
        data.putExtra(FirstActivity.EXT_RESULT, resultValue);

        // store result with data
        setResult(RESULT_OK, data);

        // finish activity
        finish();
    }
}

class FirstActivity extends Activity {

    public static final String EXT_RESULT = "result-value";
    public static final int REQ_SECOND_ACTIVITY = 100;

    // call this method to launch second activity
    private void launchSecondActicity() {
        startActivityForResult(
            new Intent(this, SecondActivity.class), REQ_SECOND_ACTIVITY);
    }

    @Override
    public onActivityResult(int requestCode, int resultCode, Intent data) {
        // this gets called when second activity is closed
        if (resultCode == RESULT_OK && requestCode == REQ_SECOND_ACTIVITY) {

            // read your value
            int resultValue = data.getIntExtra(EXT_RESULT, 0);

            // open your dialog here
            ...
        }
    }
}

关于android - 如何显示不同 Activity 的警报,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18526333/

相关文章:

Android Studio 如何从 fragment 中获取 Intent ?

java - Android 应用程序模拟器问题

android - 通过 Intent.ACTION_WIRELESS_SETTING 查看无线设置后应用程序关闭后退按钮

java - 开始新 Activity 不会暂停当前 Activity

Android - 何时调用 db.setTransactionSuccessful()?

android - 调用android对话框而不褪色背景

android - 在警报管理器中显示通知

android - 如何从偏好屏幕返回到主要 Activity ?

java - 如何为 webview 创建包装器对象

android - 如何在android studio中的BASE64中编码任何类型的文件("JPG"、 "PNG"、 "DOCX"、 "ZIP"、 "GIF"、 "MP3"...)?