Android Bundle 数据传递与结果返回机制

在 Android 开发中,Activity 之间的数据传递是一个常见的需求。Bundle 提供了一种结构化的数据存储方式,能够方便地在 Activity 之间传递数据,并支持返回结果。

数据传递

使用 Bundle 传递数据,首先需要创建一个 Bundle 对象,并将需要传递的数据以键值对的形式存储到 Bundle 中。

Bundle bundle = new Bundle();
bundle.putString("key_name", "value");

然后,在启动目标 Activity 时,将 Bundle 对象作为参数传递给 startActivityForResult() 方法:

Intent intent = new Intent(this, TargetActivity.class);
intent.putExtras(bundle);
startActivityForResult(intent, REQUEST_CODE);

在目标 Activity 中,可以通过 getIntent().getExtras() 方法获取到传递的 Bundle 对象,并从中读取数据:

Bundle bundle = getIntent().getExtras();
String value = bundle.getString("key_name");

结果返回

目标 Activity 可以通过 setResult() 方法将结果返回给启动它的 Activity。setResult() 方法接收两个参数:

  • resultCode:结果码,用于标识操作结果,例如 Activity.RESULT_OK 表示操作成功。
  • data:一个 Intent 对象,用于存储返回的数据。
Intent data = new Intent();
data.putExtra("result_key", "result_value");
setResult(Activity.RESULT_OK, data);
finish();

启动 Activity 可以通过重写 onActivityResult() 方法来接收目标 Activity 返回的结果。在 onActivityResult() 方法中,可以通过 resultCode 判断操作结果,并从 data 中读取返回的数据。

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK) {
        String resultValue = data.getStringExtra("result_key");
        // 处理返回结果
    }
}

字符串大小写转换

字符串大小写转换并非 Bundle 数据传递与结果返回机制的一部分,可以通过 String.toUpperCase()String.toLowerCase() 方法实现。

String originalString = "hello world";
String upperCaseString = originalString.toUpperCase(); // "HELLO WORLD"
String lowerCaseString = originalString.toLowerCase(); // "hello world"
rar 文件大小:170.66KB