android.intent.extra,Android Intent的几种用法详细解析
时间: 2024-02-26 18:57:12 浏览: 169
Android Intent是Android系统中常用的组件之一,它用于在不同的组件之间传递消息和数据。在使用Intent时,常用的参数包括Action、Category、Data、Type和Extra等。其中,Extra是Intent中比较重要的一种参数,用于传递数据。
Extra的具体用法如下:
1. putExtra方法
使用putExtra方法向Intent中添加参数。putExtra方法有多个重载版本,可以传递不同类型的数据,如字符串、整数、布尔值、字符数组、字节数组等。例如:
```
Intent intent = new Intent();
intent.putExtra("name", "张三");
intent.putExtra("age", 18);
startActivity(intent);
```
2. getExtra方法
使用getExtra方法从Intent中获取参数。getExtra方法也有多个重载版本,需要根据传递数据的类型来选择相应的方法。例如:
```
Intent intent = getIntent();
String name = intent.getStringExtra("name");
int age = intent.getIntExtra("age", 0);
```
其中,getIntExtra方法的第二个参数表示如果获取不到对应的值,则返回默认值0。
3. Bundle参数
使用Bundle参数可以在Intent中传递更复杂的数据结构,如数组、集合等。例如:
```
Intent intent = new Intent();
Bundle bundle = new Bundle();
String[] names = {"张三", "李四", "王五"};
bundle.putStringArray("names", names);
intent.putExtras(bundle);
startActivity(intent);
```
在接收方,使用getExtras方法获取Bundle参数,再根据键值获取对应的数据。例如:
```
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
String[] names = bundle.getStringArray("names");
```
4. Parcelable参数
Parcelable参数可以用于在Intent中传递自定义对象。自定义对象需要实现Parcelable接口,并重写相应的方法。例如:
```
public class Person implements Parcelable {
private String name;
private int age;
// 省略构造方法和其他方法
@Override
public void writeToParcel(Parcel dest, int flags) {
dest.writeString(name);
dest.writeInt(age);
}
public static final Parcelable.Creator<Person> CREATOR = new Parcelable.Creator<Person>() {
@Override
public Person createFromParcel(Parcel in) {
return new Person(in);
}
@Override
public Person[] newArray(int size) {
return new Person[size];
}
};
private Person(Parcel in) {
name = in.readString();
age = in.readInt();
}
@Override
public int describeContents() {
return 0;
}
}
```
在使用Intent传递自定义对象时,需要使用putExtra方法,并将自定义对象作为参数传递。例如:
```
Intent intent = new Intent();
Person person = new Person("张三", 18);
intent.putExtra("person", person);
startActivity(intent);
```
在接收方,使用getParcelableExtra方法获取Parcelable参数。例如:
```
Intent intent = getIntent();
Person person = intent.getParcelableExtra("person");
```
以上就是Android Intent中Extra参数的几种用法。在实际开发中,Extra参数可以用于在不同的Activity、Service和BroadcastReceiver之间传递数据,非常方便。
阅读全文