Android的startactivityforresult怎么使用
使用startActivityForResult()方法可以启动一个Activity,并且在该Activity关闭后,可以获取到返回的结果。
以下是使用startActivityForResult()方法的步骤:
- 在当前Activity中调用startActivityForResult()方法,传入一个Intent对象和一个请求码(requestCode)。
Intent intent = new Intent(this, SecondActivity.class);
startActivityForResult(intent, REQUEST_CODE);
- 在被启动的Activity中设置返回结果,并在适当的时候关闭Activity。
Intent returnIntent = new Intent();
returnIntent.putExtra("result", resultData);
setResult(Activity.RESULT_OK, returnIntent);
finish();
- 在当前Activity中重写onActivityResult()方法,该方法会在被启动的Activity关闭后被调用,可以在该方法中获取返回的结果。
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) {
String result = data.getStringExtra("result");
// 处理返回结果
}
}
注意事项:
-
请求码(requestCode)是一个整型值,用于标识启动的Activity,可以自定义。
-
setResult()方法用于设置返回结果,第一个参数为结果码(resultCode),一般使用Activity.RESULT_OK表示成功。
-
可以通过Intent对象的putExtra()方法传递额外的数据,返回结果时可以通过getXXXExtra()方法获取。
-
如果被启动的Activity意外关闭(如崩溃),则onActivityResult()方法可能不会被调用,需要注意处理这种情况。
相关问答