android在不同activity传参
时间: 2023-12-14 13:03:54 浏览: 72
在Android中,我们可以使用Intent在不同的Activity之间传递参数。下面是一些常用的传递参数的方法:
1.使用putExtra()方法传递参数
在发送Intent的Activity中使用putExtra()方法来添加参数,例如:
```java
Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra("name", "John");
intent.putExtra("age", 25);
startActivity(intent);
```
在接收Intent的Activity中使用getXXXExtra()方法来获取参数,例如:
```java
Intent intent = getIntent();
String name = intent.getStringExtra("name");
int age = intent.getIntExtra("age", 0); // 如果获取不到该参数,则返回默认值0
```
2.使用Bundle对象传递参数
在发送Intent的Activity中创建一个Bundle对象,将需要传递的参数放入Bundle中,例如:
```java
Intent intent = new Intent(this, SecondActivity.class);
Bundle bundle = new Bundle();
bundle.putString("name", "John");
bundle.putInt("age", 25);
intent.putExtras(bundle);
startActivity(intent);
```
在接收Intent的Activity中使用getExtras()方法来获取Bundle对象,然后从Bundle中获取参数,例如:
```java
Intent intent = getIntent();
Bundle bundle = intent.getExtras();
String name = bundle.getString("name");
int age = bundle.getInt("age", 0); // 如果获取不到该参数,则返回默认值0
```
以上两种方法都可以用来传递基本数据类型、字符串、数组等数据类型。如果需要传递自定义类型的参数,则需要将该对象实现序列化接口,例如:
```java
public class Person implements Serializable {
private String name;
private int age;
// 省略getter和setter方法
}
```
然后在发送Intent的Activity中使用putExtra()方法传递Person对象,例如:
```java
Intent intent = new Intent(this, SecondActivity.class);
Person person = new Person();
person.setName("John");
person.setAge(25);
intent.putExtra("person", person);
startActivity(intent);
```
在接收Intent的Activity中使用getSerializableExtra()方法来获取Person对象,例如:
```java
Intent intent = getIntent();
Person person = (Person) intent.getSerializableExtra("person");
```
希望以上内容能够解决你的问题。
阅读全文