android:intent传递对象(Gson方式)
一,代码:
gson库安装方式见我其他博文
传递对象的类:
package com.example.okdemo1.model;
public class Goods1 {
//商品id
private int id;
//商品名称
private String name;
public Goods1(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;
}
}
传递数据:
//给按钮增加点击事件
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);
Goods1 one = new Goods1(11,"英国银把雨伞");
// 增加要传递的参数
intent.putExtra("one", new Gson().toJson(one)); // 传递字符串数据
// 启动目标Activity
startActivity(intent, ActivityOptions.makeSceneTransitionAnimation(MainActivity.this).toBundle());
System.out.println("点击完成");
}
});
接收数据:
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();
String oneStr = intent.getStringExtra("one");
Goods1 one = new Gson().fromJson(oneStr,Goods1.class);
Log.d("参数",one.getName());
Log.d("参数",String.valueOf(one.getId()));
}
}
二,测试效果:
接收到的参数
浙公网安备 33010602011771号