startActivityForResult是Android开发中用于启动另一个Activity并期望从该Activity获取返回结果的方法。其主要用途和用法如下:
setResult方法将结果返回给启动它的Activity,启动的Activity通过重写onActivityResult方法来接收和处理这些结果。Intent intent = new Intent(this, TargetActivity.class); startActivityForResult(intent, REQUEST_CODE); @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { super.onActivityResult(requestCode, resultCode, data); if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) { // 处理返回的数据 } } Intent intent = this.getIntent(); String result = intent.getStringExtra("result"); setResult(Activity.RESULT_OK, intent); finish(); 假设我们有两个Activity:MainActivity和SecondActivity。在MainActivity中,用户可以点击一个按钮来启动SecondActivity。在SecondActivity中,用户可以输入一些数据,然后点击一个按钮返回结果到MainActivity。
Intent intent = new Intent(MainActivity.this, SecondActivity.class); startActivityForResult(intent, REQUEST_CODE); Intent intent = this.getIntent(); String input = intent.getStringExtra("input"); String result = processData(input); // 假设这是处理数据的方法 intent.putExtra("result", result); setResult(Activity.RESULT_OK, intent); finish(); @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"); // 处理返回的数据 } } 通过这种方式,startActivityForResult允许Activity之间进行数据交换和结果传递,从而实现更丰富的应用交互。