Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何显示针对不同活动的警报_Android_Android Activity - Fatal编程技术网

Android 如何显示针对不同活动的警报

Android 如何显示针对不同活动的警报,android,android-activity,Android,Android Activity,我有一个活动和第二个活动。在第二个活动中,我需要关闭该活动,然后在第一个活动中再次向用户显示警报 以下是我用于发出警报和关闭活动的当前代码: String message = "message"; AlertDialog alertDialog = new AlertDialog.Builder(SecondActivity.this).create(); alertDialog.setMessage(message); alertDialog.show(); alertDialog.set

我有一个活动和第二个活动。在第二个活动中,我需要关闭该活动,然后在第一个活动中再次向用户显示警报

以下是我用于发出警报和关闭活动的当前代码:

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();
    }
});
那么,我如何才能使第二个活动
完成
,然后返回第一个活动,向用户显示警报

我也试过这个:

String message = "message";

finish();

AlertDialog alertDialog = new AlertDialog.Builder(FirstActivity.class).create();
alertDialog.setMessage(message);
alertDialog.show();
但我得到了这个错误:


构造函数AlertDialog.Builder(类)未定义

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

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
            ...
        }
    }
}

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

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
            ...
        }
    }
}

我需要使用
startActivityForResult
方法从第一个活动开始第二个活动,然后将
结果
第二个活动
传递到
第一个活动


第二项活动:
第一项活动: 将其放在第一个活动类的顶部:

public static final int REQ_SECOND_ACTIVITY = 100;
// this method gets called when the second activity is closed
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    
    if (resultCode == RESULT_OK && requestCode == REQ_SECOND_ACTIVITY) 
    {   
        String message = data.getStringExtra("reference for the message");

        AlertDialog alertDialog = new AlertDialog.Builder(FirstActivity.this).create();
        alertDialog.setMessage(message);
        alertDialog.show();        
    }
}
这是如何从
第一个活动开始
第二个活动

startActivityForResult(new Intent(FirstActivity.this, SecondActivity.class), REQ_SECOND_ACTIVITY);
最后,将此方法添加到第一个活动类中:

public static final int REQ_SECOND_ACTIVITY = 100;
// this method gets called when the second activity is closed
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    
    if (resultCode == RESULT_OK && requestCode == REQ_SECOND_ACTIVITY) 
    {   
        String message = data.getStringExtra("reference for the message");

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

这个方法是由这个问题和那个问题的用户组合而成的。

我需要使用
startActivityForResult
方法从第一个活动开始第二个活动,然后将
结果
第二个活动
传递到
第一个活动


第二项活动:
第一项活动: 将其放在第一个活动类的顶部

public static final int REQ_SECOND_ACTIVITY = 100;
// this method gets called when the second activity is closed
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    
    if (resultCode == RESULT_OK && requestCode == REQ_SECOND_ACTIVITY) 
    {   
        String message = data.getStringExtra("reference for the message");

        AlertDialog alertDialog = new AlertDialog.Builder(FirstActivity.this).create();
        alertDialog.setMessage(message);
        alertDialog.show();        
    }
}
这是如何从
第一个活动开始
第二个活动

startActivityForResult(new Intent(FirstActivity.this, SecondActivity.class), REQ_SECOND_ACTIVITY);
最后,将此方法添加到第一个活动类中:

public static final int REQ_SECOND_ACTIVITY = 100;
// this method gets called when the second activity is closed
@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);
    
    if (resultCode == RESULT_OK && requestCode == REQ_SECOND_ACTIVITY) 
    {   
        String message = data.getStringExtra("reference for the message");

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

这个方法是由这个问题的用户组合而成的。

这只是一个请求id,当调用
onActivityResult()
时,您会收到它。我更新了一个示例,它显示了如何使用请求id和附加。这只是一个请求id,当调用
onActivityResult()
时,您会收到它。我更新了一个示例,它显示了如何使用请求id和附加项。