在startactivityforresult中处理返回结果

avatar
作者
筋斗云
阅读量:0

在Android开发中,startActivityForResult用于启动一个新的Activity,并在该Activity完成后返回结果

  1. 创建一个Intent对象,用于启动新的Activity。
  2. 使用startActivityForResult(intent, requestCode)方法启动新的Activity。requestCode是一个整数,用于标识请求。
  3. 在新的Activity中处理完成后,使用setResult(resultCode, intent)方法设置结果。resultCode是一个整数,表示结果状态;intent是一个包含返回数据的Intent对象。
  4. 在原始Activity中重写onActivityResult(requestCode, resultCode, data)方法,以处理返回的结果。

下面是一个简单的示例:

假设我们有两个Activity:MainActivitySecondActivity。在MainActivity中,我们通过点击一个按钮来启动SecondActivity,并等待其返回结果。

MainActivity.java:

public class MainActivity extends AppCompatActivity {      private static final int REQUEST_CODE = 1;      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_main);          Button button = findViewById(R.id.button);         button.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View v) {                 Intent intent = new Intent(MainActivity.this, SecondActivity.class);                 startActivityForResult(intent, REQUEST_CODE);             }         });     }      @Override     protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {         super.onActivityResult(requestCode, resultCode, data);          if (requestCode == REQUEST_CODE && resultCode == RESULT_OK) {             String result = data.getStringExtra("result");             Toast.makeText(this, "Result: " + result, Toast.LENGTH_SHORT).show();         }     } } 

SecondActivity中,我们处理完成后,将结果设置为一个字符串,并返回给MainActivity

SecondActivity.java:

public class SecondActivity extends AppCompatActivity {      @Override     protected void onCreate(Bundle savedInstanceState) {         super.onCreate(savedInstanceState);         setContentView(R.layout.activity_second);          Button button = findViewById(R.id.button);         button.setOnClickListener(new View.OnClickListener() {             @Override             public void onClick(View v) {                 Intent intent = new Intent();                 intent.putExtra("result", "Hello from SecondActivity!");                 setResult(RESULT_OK, intent);                 finish();             }         });     } } 

当用户点击SecondActivity中的按钮时,将返回一个字符串结果给MainActivity,并显示一个Toast消息。

广告一刻

为您即时展示最新活动产品广告消息,让您随时掌握产品活动新动态!