最近有些人问我怎么用Intent传递对象,首先说明,Intent传递对象,是需要序列化的,下面介绍一下两个activity之间如何传递对象
首先,创建一个工具类,实现Serializable接口,如下:
public class UserBean implements Serializable{
String name,sex;
public UserBean(String name, String sex) {
this.name = name;
this.sex = sex;
}
public String getSex() {
return sex;
}
public void setSex(String sex) {
this.sex = sex;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
其次,Mainactivity有一个按钮用来跳转到otheractivity
public class MainActivity extends AppCompatActivity {
private Button first_btn;
private Intent intent;
private UserBean userBean;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
first_btn= (Button) findViewById(R.id.first_btn);
first_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
intent=new Intent(MainActivity.this,OtherActivity.class);
userBean=new UserBean("张三","男");
Bundle bundle=new Bundle();
bundle.putSerializable("user",userBean);//实现序列化
intent.putExtras(bundle);
startActivity(intent);
}
});
}
}
然后,otheractivity接收对象
public class OtherActivity extends Activity {
private Button other_btn;
private Intent intent;
private UserBean userBean;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.other_layout);
other_btn = (Button) findViewById(R.id.other_btn);
userBean = (UserBean) getIntent().getSerializableExtra("user");
other_btn.setText(userBean.getName() + " " + userBean.getSex());
}
}
代码量不多,但是比较实用,希望对你有所帮助!