使用Intent传递对象(Parcelable方式)
【使用Intent传递对象(Parcelable方式)】第一个Activity布局文件
第二个Activity布局文件
第一个Activity
public class MainActivity extends AppCompatActivity {private Button btn;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn = (Button)findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
Person person = new Person();
person.setName("Tom");
person.setAge(20);
Intent intent = new Intent(MainActivity.this,Main2Activity.class);
intent.putExtra("person_data",person);
startActivity(intent);
}
});
}
}
第二个Activity
public class Main2Activity extends AppCompatActivity {private TextView show_text;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
//Person person = (Person)getIntent().getSerializableExtra("person_data");
Person person = (Person)getIntent().getParcelableExtra("person_data");
show_text = (TextView)findViewById(R.id.show_text);
show_text.setText("name:"+person.getName()+"\n"+"age:"+person.getAge());
}
}
效果和 “使用Intent传递对象(Serializable方式)”
总结:
使用Intetn来传递对象,可以使用Serializable和Parcelable。Serializable的方式较为简单,但是由于会把整个对象进行序列化,因此效率会比较Parcelable方式低一些,所以在通常情况下还是更加推荐使用Parcelable的方式来实现Intent传递对象的功能。
推荐阅读
- 由浅入深理解AOP
- 【译】20个更有效地使用谷歌搜索的技巧
- mybatisplus如何在xml的连表查询中使用queryWrapper
- MybatisPlus|MybatisPlus LambdaQueryWrapper使用int默认值的坑及解决
- MybatisPlus使用queryWrapper如何实现复杂查询
- iOS中的Block
- Linux下面如何查看tomcat已经使用多少线程
- 使用composer自动加载类文件
- android|android studio中ndk的使用
- 使用协程爬取网页,计算网页数据大小