
【Android】9.Activity通过Parcelable方式传递对象
发布日期:2021-05-12 19:47:13
浏览次数:11
分类:精选文章
本文共 2838 字,大约阅读时间需要 9 分钟。
Activity通过Parcelable方式传递对象
1. 下载素材
为了完成本节课的实验,您需要先下载相关的素材。请在AS12071
已发布的公众号中回复生成的链接,按照AS12071
格式获取完整的代码包和资源文件。
2. 新建AppInfo类
创建一个新的Java类AppInfo
,实现Parcelable
接口。该类用于存储和传递应用信息,包括应用名称和版本号。该类的结构如下:
public class AppInfo implements Parcelable { private String name; private Double version; public AppInfo() { // 无参数构造函数,内部初始化 } public AppInfo(String name, Double version) { this.name = name; this.version = version; } // ... 其他标准Parcelable方法,包括readFromParcel和writeToParcel}
3. 填写AppInfo类信息
填写AppInfo
类中的数据。这一步主要是为AppInfo
对象赋予实际的应用信息,例如应用名称和版本号。
AppInfo appInfo = new AppInfo("DM盒子", 2.3);
4. 编写AppInfo类的完整代码
以下是AppInfo
类的完整实现:
public class AppInfo implements Parcelable { private String name; private Double version; @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel dest, int flags) { dest.writeString(name); dest.writeValue(version); } protected AppInfo(Parcel in) { name = in.readString(); version = (Double) in.readValue(Double.class.getClassLoader()); } public static final Parcelable.CreatorCREATOR = new Parcelable.Creator () { @Override public AppInfo createFromParcel(Parcel source) { return new AppInfo(source); } @Override public AppInfo[] newArray(int size) { return new AppInfo[size]; } };}
5. 修改MainActivity类
在MainActivity
中,创建一个intent
并附加AppInfo
对象进行传递。
public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button button = findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(MainActivity.this, SecondActivity.class); AppInfo appInfo = new AppInfo("DM盒子", 2.3); intent.putExtra("appInfo", appInfo); startActivity(intent); } }); }}
6. 修改SecondActivity类
在SecondActivity
中,从intent
中获取AppInfo
对象并显示相关信息。
public class SecondActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); Intent intent = getIntent(); AppInfo appInfo = (AppInfo) intent.getParcelableExtra("appInfo"); TextView textView = findViewById(R.id.textView); String text = String.format("软件名称:%s,软件版本:%.1f", appInfo.getName(), appInfo.getVersion()); textView.setText(text); }}
7. 效果图
通过以上步骤,您可以成功地将AppInfo
对象通过Parcelable
机制传递到另一个Activity
中,并在目标Activity
中正确地读取和显示这些数据。
发表评论
最新留言
感谢大佬
[***.8.128.20]2025年04月13日 13时44分24秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
自定义jq插件:验证表单(基于Bootstrap)
2019-03-10
JS异步底层
2019-03-10
百度搜索
2019-03-10
Vue 详解filter
2019-03-10
ES6写拖拽
2019-03-10
leetcode 每日一题 404 左叶子之和
2019-03-10
leetcode 102 剑指Offer 32 二叉树的层次遍历
2019-03-10
大彩串口屏之LUA使用1
2019-03-10
关于继承的一些基本知识
2019-03-10
如何批量下载新浪微博相册,一键下载微博相册原图
2019-03-10
抖音发布黄金时间段,抖音上热门最佳时间
2019-03-10
小米有品的手机详情图怎么保存,如何把小米有品商品详情图保存
2019-03-10
我的图床~
2019-03-10
MySQL 实战 45 讲笔记 | 事务隔离和 MVCC
2019-03-10
自学C++编程,掌握这三项技能就可以工作了
2019-03-10
限时免费 | UWA粉丝专享定制化福利:项目性能诊断一对一!
2019-03-10
限时免费 | 用正确的方式,三天搞定Mono堆内存泄漏!
2019-03-10
正大国际期货,新交易系统源代码与逸富有什么区别,详细讲解
2019-03-11
HTTP 常见状态码
2019-03-11
通过js来实现表单的提交
2019-03-11