如何在Android上管理startActivityForResult
![](/images/android.256x256.png)
首先,在你的FirstActivity
里,通过startActivityForResult()
方法调用SecondActivity
。
例如:
1int LAUNCH_SECOND_ACTIVITY = 1;
2Intent i = new Intent(this, SecondActivity.class);
3startActivityForResult(i, LAUNCH_SECOND_ACTIVITY);
然后,在你的SecondActivity
里,设置要返回给FirstActivity
的数据。如果你不想返回数据,就不要设置任何值。
例如:在SecondActivity
里,如果你想返回数据,可以这样设置:
1Intent returnIntent = new Intent();
2returnIntent.putExtra("result", result);
3setResult(Activity.RESULT_OK, returnIntent);
4finish();
如果你不想返回数据,可以这样设置:
1Intent returnIntent = new Intent();
2setResult(Activity.RESULT_CANCELED, returnIntent);
3finish();
接下来,在你的FirstActivity
类中,编写以下代码来处理onActivityResult()
方法:
1@Override
2protected void onActivityResult(int requestCode, int resultCode, Intent data) {
3 super.onActivityResult(requestCode, resultCode, data);
4
5 if (requestCode == LAUNCH_SECOND_ACTIVITY) {
6 if(resultCode == Activity.RESULT_OK){
7 String result = data.getStringExtra("result");
8 // 处理返回的结果
9 }
10 if (resultCode == Activity.RESULT_CANCELED) {
11 // 处理没有结果的情况
12 }
13 }
14}
以上就是在Android上管理startActivityForResult
的方法。如果想要更好地在两个活动之间传递数据,可以参考Kotlin中更好的方法。
相关文章推荐
- Android中如何创建一个启动页?
- 动画展开/折叠的方法
- Android ActionBarCompat主题问题解决方案
- 使用Genymotion虚拟设备安装Google框架(Play,Accounts等)
- Android Toolbar 标题居中和自定义字体
- <html>
- 如何更新RecyclerView Adapter数据
- 在Android中如何使用`setCompoundDrawables()`显示组合Drawable
- Android资源目录中是否可以包含子目录?