📌  相关文章
📜  intent .putextra (1)

📅  最后修改于: 2023-12-03 15:01:25.601000             🧑  作者: Mango

Intent.putExtra - Android

在Android中,我们使用Intent来启动另一个Activity或者Service。Intent.putExtra()方法用于向Intent传递额外的数据。

语法
public Intent putExtra (String name, Bundle value)
public Intent putExtra (String name, boolean value)
public Intent putExtra (String name, Bundle[] value)
public Intent putExtra (String name, byte value)
public Intent putExtra (String name, char value)
public Intent putExtra (String name, char[] value)
public Intent putExtra (String name, CharSequence value)
public Intent putExtra (String name, CharSequence[] value)
public Intent putExtra (String name, double value)
public Intent putExtra (String name, float value)
public Intent putExtra (String name, int value)
public Intent putExtra (String name, long value)
public Intent putExtra (String name, Parcelable value)
public Intent putExtra (String name, Parcelable[] value)
public Intent putExtra (String name, Serializable value)
public Intent putExtra (String name, short value)
public Intent putExtra (String name, String value)
public Intent putExtra (String name, String[] value)
功能

Intent.putExtra()方法用于传递数据,在Intent启动时可以获取到这些数据。传递的数据类型可以是boolean、byte、char、int、long、float、double、String、CharSequence、Parcelable、Serializable等类型。

示例
// 声明Intent
Intent intent = new Intent(MainActivity.this, SecondActivity.class);

// 传递String类型参数
String name = "Tom";
intent.putExtra("Name", name);

// 传递int类型参数
int age = 18;
intent.putExtra("Age", age);

// 启动另一个Activity
startActivity(intent);

在SecondActivity中获取传递的参数:

String name = getIntent().getStringExtra("Name");
int age = getIntent().getIntExtra("Age", 0);
注意事项
  • 传递的数据必须是支持序列化或者可parcelable的类型。
  • 使用putExtra()方法传递数据时,传递的值的类型必须与接收到数据的类型相匹配。
  • 如果没有找到指定名称的值,则getIntExtra()、getStringExtra()等方法将返回默认值。默认值可以作为第二个参数传递。
  • 如果数据过多或者过于复杂,则建议使用Bundle来传递数据。
结论

Intent.putExtra()是Android中一个非常常用的方法,它可以传递任何序列化或者可parcelable的类型。我们在开发Android应用时,常常需要在Activity之间传递数据,使用Intent.putExtra()方法能够很好的完成这项任务。