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和附加项。