android:intent传递对象(Serializable)
一,代码:
1,用来传递对象的类
package com.example.okdemo1.model;
import java.io.Serializable;
public class Goods2 implements Serializable {
//商品id
private int id;
//商品名称
private String name;
public Goods2(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
2,传递数据
//给按钮增加点击事件
Button myButton = findViewById(R.id.apibutton);
myButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 处理点击事件
Intent intent = new Intent(MainActivity.this, PreferenceActivity.class);
Goods2 two = new Goods2(12,"中科院研发灭蟑螂药");
// 增加要传递的参数
intent.putExtra("two", two); // 传递字符串数据
// 启动目标Activity
startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(MainActivity.this).toBundle());
System.out.println("点击完成");
}
});
3,接收数据
public class PreferenceActivity extends AppCompatActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
EdgeToEdge.enable(this);
setContentView(R.layout.activity_preference);
//接收参数
Intent intent = getIntent();
Goods2 two = (Goods2)intent.getSerializableExtra("two");
Log.d("参数",two.getName());
Log.d("参数",String.valueOf(two.getId()));
}
}
二,测试效果:

浙公网安备 33010602011771号