Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/209.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 Intent_Android Event - Fatal编程技术网

Android 如何实现活动之间的回调机制

Android 如何实现活动之间的回调机制,android,android-intent,android-event,Android,Android Intent,Android Event,我有两个活动第一个详细信息活动和第二个活动页面是确认页面,一旦我确认它应该返回到第一个页面,我应该如何处理这个场景 是否可以在活动之间使用,而不是使用片段?通过startActivityForResult(intent,requestCode)启动结果确认页面 下面是一个完整的示例()我认为调用finish()是退出活动的最简单方法。它应该返回到上一个,类似于按“后退”按钮 Intent i = new Intent(); Bundle extra = new Bundle();

我有两个活动第一个详细信息活动和第二个活动页面是确认页面,一旦我确认它应该返回到第一个页面,我应该如何处理这个场景


是否可以在活动之间使用,而不是使用片段?

通过
startActivityForResult(intent,requestCode)
启动结果确认页面

下面是一个完整的示例()

我认为调用finish()是退出活动的最简单方法。它应该返回到上一个,类似于按“后退”按钮

    Intent i = new Intent();
    Bundle extra = new Bundle();
    extra.putString("NameKey", KeyValue);

    i.putExtras(extra);
    setResult(1, i);
    finish();  
编辑:尽管如Sirlate所述,如果您希望返回数据,startActivityForResult可能是您的最佳选择。

这可能会对您有所帮助

这是
FirstActivity

Intent i = new Intent(this, SecondActivity.class);
startActivityForResult(i, 1);
如果你想发回数据,还有第二个活动

 Intent returnIntent = new Intent();
 returnIntent.putExtra("result",result);
 setResult(RESULT_OK,returnIntent);     
 finish();

您必须使用startActivityForResult();方法启动第二个活动时

您还必须实现onActivityResult()方法

这是第一个活动的代码

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode == 1) {
        Bundle extra = data.getExtras();
        String ID = extra.getString("NameKey").trim();
         // do your code here.

    }
}
第二个活动中的代码

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    // TODO Auto-generated method stub
    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode == 1) {
        Bundle extra = data.getExtras();
        String ID = extra.getString("NameKey").trim();
         // do your code here.

    }
}
在确认按钮上添加代码

    Intent i = new Intent();
    Bundle extra = new Bundle();
    extra.putString("NameKey", KeyValue);

    i.putExtras(extra);
    setResult(1, i);
    finish();  

使用
startActivityForResult()
从您的孩子
活动
向其家长发送响应。