在Android中,startActivityForResult()方法允许你启动一个新的Activity,并且在新的Activity结束后返回结果给调用它的Activity。
首先,在调用startActivityForResult()方法之前,你需要先准备好一个Intent对象,用于启动新的Activity。Intent对象包含了要启动的Activity的类名或者Action。
然后,调用startActivityForResult()方法来启动新的Activity,并传入Intent对象和一个用于标识返回结果的请求码(requestCode)。
int requestCode = 1; // 请求码可以是任意的整数 Intent intent = new Intent(this, SecondActivity.class); // SecondActivity为要启动的Activity startActivityForResult(intent, requestCode);
在新的Activity中,当任务完成后,你可以通过调用setResult()方法来设置结果数据,并使用Activity的finish()方法来关闭当前Activity。
Intent resultIntent = new Intent(); resultIntent.putExtra("result", "这是返回的结果"); // 可以通过putExtra()方法来传递结果数据 setResult(Activity.RESULT_OK, resultIntent); finish();
最后,在调用startActivityForResult()方法的Activity中,需要重写onActivityResult()方法来处理返回的结果数据。
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == 1 && resultCode == Activity.RESULT_OK) { // 根据请求码和结果码来判断是哪个请求返回的结果 String result = data.getStringExtra("result"); // 获取结果数据 // 处理结果数据 } }
使用startActivityForResult()方法可以方便地启动一个新的Activity,并获取返回的结果数据。记得在调用startActivityForResult()方法的Activity中重写onActivityResult()方法来处理结果数据。