1. 传递对象:
- 通过 Intent 传递自定义对象,确保该对象实现了 Serializable 或 Parcelable 接口。
// 在发送端
MyObject myObject = new MyObject("John", 25);
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("myObject", myObject);
startActivity(intent);
// 在接收端
Intent receivedIntent = getIntent();
MyObject receivedObject = (MyObject) receivedIntent.getSerializableExtra("myObject");
2. 传递数组:
- 通过 Intent 传递数组。
// 在发送端
String[] stringArray = {"Apple", "Banana", "Orange"};
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("stringArray", stringArray);
startActivity(intent);
// 在接收端
Intent receivedIntent = getIntent();
String[] receivedArray = receivedIntent.getStringArrayExtra("stringArray");
3. 传递 ArrayList:
- 通过 Intent 传递 ArrayList。
// 在发送端
ArrayList<String> stringList = new ArrayList<>();
stringList.add("Red");
stringList.add("Green");
stringList.add("Blue");
Intent intent = new Intent(this, SecondActivity.class);
intent.putStringArrayListExtra("stringList", stringList);
startActivity(intent);
// 在接收端
Intent receivedIntent = getIntent();
ArrayList<String> receivedList = receivedIntent.getStringArrayListExtra("stringList");
4. 传递复杂对象数组:
- 通过 Intent 传递包含自定义对象的数组。
// 在发送端
MyObject[] objectArray = {new MyObject("Alice", 30), new MyObject("Bob", 28)};
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("objectArray", objectArray);
startActivity(intent);
// 在接收端
Intent receivedIntent = getIntent();
MyObject[] receivedArray = (MyObject[]) receivedIntent.getSerializableExtra("objectArray");
5. 传递 Bundle:
- 通过 Intent 传递 Bundle,Bundle 可以包含多个键值对。
// 在发送端
Intent intent = new Intent(this, SecondActivity.class);
Bundle bundle = new Bundle();
bundle.putString("name", "Jane");
bundle.putInt("age", 22);
intent.putExtras(bundle);
startActivity(intent);
// 在接收端
Intent receivedIntent = getIntent();
Bundle receivedBundle = receivedIntent.getExtras();
String name = receivedBundle.getString("name");
int age = receivedBundle.getInt("age");
6. 传递序列化对象:
- 对于一些复杂的对象,实现 Serializable 接口也是一种可行的方式。
// 在发送端
MySerializableObject serializableObject = new MySerializableObject("Tom", 26);
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("serializableObject", serializableObject);
startActivity(intent);
// 在接收端
Intent receivedIntent = getIntent();
MySerializableObject receivedObject = (MySerializableObject) receivedIntent.getSerializableExtra("serializableObject");
以上是一些关于传递复杂数据的示例。在选择使用 Serializable 还是 Parcelable 接口时,建议使用 Parcelable,因为它通常比 Serializable 更高效。Parcelable 被设计为在 Android 中更有效地传递对象,特别适用于大量数据的情况。
转载请注明出处:http://www.zyzy.cn/article/detail/15180/Android