- 浏览: 75987 次
- 性别:
- 来自: 西安
文章分类
- 全部博客 (101)
- Android (45)
- java中多线程的实现 (1)
- Runnable (2)
- Thread (1)
- TCP网络编程 (1)
- PHP (1)
- java (4)
- JDBC (1)
- oauth登录 (1)
- 中文乱码 (1)
- Ajax (1)
- web (2)
- Mysql (2)
- HTML5 (0)
- HTML5 (1)
- entity not found (1)
- JQuery (2)
- 使用jsp和Servlet实现一个验证码 (1)
- 验证码 (1)
- 异常 (1)
- webService (2)
- not insert异常 (1)
- JAVAmail (1)
- 选中分享 (1)
- 控件 (1)
- 方法 (1)
- listView (1)
- android控件 (1)
- jqueryMobile (1)
- servlet开发中文乱码解决方案 (1)
- servlet开发中文乱码解决方案 (1)
- web文本框初始提示 (1)
- web文本框初始提示 (0)
- xml (1)
- java中的加密技术 (1)
- 互联网 (1)
- mysql数据库 (1)
- java单例模式 (1)
- gson转json (1)
最新评论
前段时间做项目时无意中乱用了putSerializable这个方法,结果达到了目的,这令我很惊讶,当时以为是这个方法有超越其他方法的奇效,当时的代码是这样写的:
这个是下一个页面的UpdateActivity中的查询方法:
//findAll
public ArrayList<HashMap<String, Object>> findAll(){
//查询所有
Cursor c;
c = db.rawQuery("select g.ID,g.GoodsID,g.GoodsName,g.SellerID,g.Price,g.Specification,g.Unit,s.ID,s.SellerExtraName from T_Goods as g inner join T_Seller as s on g.SellerID = s.ID", null);
TGoods gods=new TGoods();
ArrayList<HashMap<String, Object>> arrayList=new ArrayList<HashMap<String,Object>>();
while(c.moveToNext()){
HashMap<String,Object> map=new HashMap<String, Object>();
map.put("ID", c.getInt(c.getColumnIndex("ID")));
map.put("GoodsID", c.getString(c.getColumnIndex("GoodsID")));
map.put("GoodsName", c.getString(c.getColumnIndex("GoodsName")));
map.put("SellerExtraName", c.getString(c.getColumnIndex("SellerExtraName")));
map.put("Price", c.getFloat(c.getColumnIndex("Price")));
map.put("Specification", c.getString(c.getColumnIndex("Specification")));
map.put("Unit", c.getString(c.getColumnIndex("Unit")));
arrayList.add(map);
}
Bundle bundle=new Bundle();
bundle.putSerializable("arrayList", arrayList);
Intent intent=new Intent();
intent.setClass(UpdateActivity.this, SelTGoodsActivity.class);
startActivity(intent);
return arrayList;
}
这个是上一个SelActivity的查询页面的代码:
//查询所有
Cursor c;
c = db.rawQuery("select g.ID,g.GoodsID,g.GoodsName,g.Price,g.Specification,g.Unit,s.SellerExtraName from T_Goods as g inner join T_Seller as s on s.ID = g.SellerID", null);
ArrayList<HashMap<String, Object>> arrayList=new ArrayList<HashMap<String,Object>>();
while(c.moveToNext()){
HashMap<String,Object> map=new HashMap<String, Object>();
map.put("ID", c.getInt(c.getColumnIndex("ID")));
map.put("GoodsID", c.getString(c.getColumnIndex("GoodsID")));
map.put("GoodsName", c.getString(c.getColumnIndex("GoodsName")));
map.put("SellerExtraName", c.getString(c.getColumnIndex("SellerExtraName")));
map.put("Price", c.getString(c.getColumnIndex("Price")));
map.put("Specification", c.getString(c.getColumnIndex("Specification")));
map.put("Unit", c.getString(c.getColumnIndex("Unit")));
arrayList.add(map);
}
SimpleAdapter adapter=new SimpleAdapter(
this,
arrayList,
R.layout.selectlist,
new String[]{"GoodsID","GoodsName","SellerExtraName","Price","Specification","Unit"},
new int[]{R.id.goodsId,R.id.goodsName,R.id.prodctorName,R.id.price,R.id.guige,R.id.danwei});
selList.setAdapter(adapter);
从这些代码中可以看出,虽然我在UpdateActivity中写了bundle.putSerializable("arrayList", arrayList);但是在SelActivity中我并没有写什么接收的getXXX()方法,但我的目的还是达到了,当时以为是putSerializable("arrayList", arrayList);这个方法有什么奇效,因为干项目进度就没有多看为什么,方才才发现原来是那个被意图传过来的arrayList在起作用,事实上是我们只需要在传递数据的Activity中把要传递的数据添加到这个方法中,都不要putExtras()就可以把数据传递到接收的Activity中,最重要的是前后那两个Activity中的“arrayList”必须是equals的,否则就不行,原理是这样的,UpdateActivity中的arrayList被传到SelActivity中时会自动的找有没有与它同样的变量,有的话就把值赋给那个变量,这样就传递了数据,我这里传递的是一个集合,而且里面还是map,其实也可以放对象等等。
这个是下一个页面的UpdateActivity中的查询方法:
//findAll
public ArrayList<HashMap<String, Object>> findAll(){
//查询所有
Cursor c;
c = db.rawQuery("select g.ID,g.GoodsID,g.GoodsName,g.SellerID,g.Price,g.Specification,g.Unit,s.ID,s.SellerExtraName from T_Goods as g inner join T_Seller as s on g.SellerID = s.ID", null);
TGoods gods=new TGoods();
ArrayList<HashMap<String, Object>> arrayList=new ArrayList<HashMap<String,Object>>();
while(c.moveToNext()){
HashMap<String,Object> map=new HashMap<String, Object>();
map.put("ID", c.getInt(c.getColumnIndex("ID")));
map.put("GoodsID", c.getString(c.getColumnIndex("GoodsID")));
map.put("GoodsName", c.getString(c.getColumnIndex("GoodsName")));
map.put("SellerExtraName", c.getString(c.getColumnIndex("SellerExtraName")));
map.put("Price", c.getFloat(c.getColumnIndex("Price")));
map.put("Specification", c.getString(c.getColumnIndex("Specification")));
map.put("Unit", c.getString(c.getColumnIndex("Unit")));
arrayList.add(map);
}
Bundle bundle=new Bundle();
bundle.putSerializable("arrayList", arrayList);
Intent intent=new Intent();
intent.setClass(UpdateActivity.this, SelTGoodsActivity.class);
startActivity(intent);
return arrayList;
}
这个是上一个SelActivity的查询页面的代码:
//查询所有
Cursor c;
c = db.rawQuery("select g.ID,g.GoodsID,g.GoodsName,g.Price,g.Specification,g.Unit,s.SellerExtraName from T_Goods as g inner join T_Seller as s on s.ID = g.SellerID", null);
ArrayList<HashMap<String, Object>> arrayList=new ArrayList<HashMap<String,Object>>();
while(c.moveToNext()){
HashMap<String,Object> map=new HashMap<String, Object>();
map.put("ID", c.getInt(c.getColumnIndex("ID")));
map.put("GoodsID", c.getString(c.getColumnIndex("GoodsID")));
map.put("GoodsName", c.getString(c.getColumnIndex("GoodsName")));
map.put("SellerExtraName", c.getString(c.getColumnIndex("SellerExtraName")));
map.put("Price", c.getString(c.getColumnIndex("Price")));
map.put("Specification", c.getString(c.getColumnIndex("Specification")));
map.put("Unit", c.getString(c.getColumnIndex("Unit")));
arrayList.add(map);
}
SimpleAdapter adapter=new SimpleAdapter(
this,
arrayList,
R.layout.selectlist,
new String[]{"GoodsID","GoodsName","SellerExtraName","Price","Specification","Unit"},
new int[]{R.id.goodsId,R.id.goodsName,R.id.prodctorName,R.id.price,R.id.guige,R.id.danwei});
selList.setAdapter(adapter);
从这些代码中可以看出,虽然我在UpdateActivity中写了bundle.putSerializable("arrayList", arrayList);但是在SelActivity中我并没有写什么接收的getXXX()方法,但我的目的还是达到了,当时以为是putSerializable("arrayList", arrayList);这个方法有什么奇效,因为干项目进度就没有多看为什么,方才才发现原来是那个被意图传过来的arrayList在起作用,事实上是我们只需要在传递数据的Activity中把要传递的数据添加到这个方法中,都不要putExtras()就可以把数据传递到接收的Activity中,最重要的是前后那两个Activity中的“arrayList”必须是equals的,否则就不行,原理是这样的,UpdateActivity中的arrayList被传到SelActivity中时会自动的找有没有与它同样的变量,有的话就把值赋给那个变量,这样就传递了数据,我这里传递的是一个集合,而且里面还是map,其实也可以放对象等等。
发表评论
-
Android自动化测试--Espresso框架使用
2016-11-01 10:02 760转载: Android自动化测试--Espresso框架 ... -
浅谈android中仅仅使用一个TextView实现高仿京东,淘宝各种倒计时
2016-11-01 09:54 1091转载:http://blog.csdn.net/u0130 ... -
利用apktool等工具发编译android apk
2016-10-25 09:15 750这个是我的csdn中的一篇关于android app反编译的文 ... -
Error:Execution failed for task ':app:mergeDebugResources'. > Some file crunchin
2016-10-08 10:30 1037向studio中导入微信支付Demo的时候报错了,具体如图: ... -
android studio实用快捷键收集
2016-09-30 17:51 493本人用android studio刚开始,做一下笔记,只适用于 ... -
android中事件分发机制
2016-09-22 11:52 587转载自:http://www.cnblogs.com/linj ... -
一个对sharedpreferences 数据进行加密的开源库
2016-09-18 14:30 656http://www.cnblogs.com/zhaoyanj ... -
LinerLayout滑动后停在顶部
2016-09-18 12:08 685转载自:http://blog.csdn.net/ff2008 ... -
android studio入门知识
2016-09-06 18:11 714http://blog.csdn.net/jdsjlzx/ar ... -
android图片加载OOM解决方案
2016-08-30 15:17 490转载自:http://www.apkbus.com/blog- ... -
android oom连带问题,以及tag错位问题结局方案
2016-08-30 13:48 676http://www.apkbus.com/blog-8430 ... -
android新手指导
2016-08-30 11:59 403http://www.apkbus.com/forum.php ... -
android app自动化测试
2016-07-12 15:51 520android sdk的lib目录下有个monkeyrunne ... -
利用BadgeView实现数字提醒效果
2016-07-06 16:38 975BadgeView是一个第三方开源库, github地址:ht ... -
android端图片缓存实现,特别适用于listview来回滚动
2016-07-02 10:40 699转载自: http://www.open-open.com/l ... -
android文件存储文本
2016-05-17 17:26 504/** * 写入文本 */ private void ... -
android listView的BaseAdapter的抽取
2016-05-12 11:52 659/** * BaseAdapter的抽取 * @autho ... -
android全局异常捕获并发送异常到邮箱
2016-05-12 11:41 1123public class AppException exten ... -
android第三方框架xutils的使用
2016-05-12 11:35 849这里写一些网络请求的相关 //初始化相关参数和对象 publi ... -
android端版本更新
2016-05-12 11:26 737整个思路,先判断服务端当前版本是不是高于本地版本,高的话可以选 ...
相关推荐
Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是实现了Serializable...
以上就是在Android中使用Intent传递List或对象的几种常见方法。选择哪种方法取决于你的需求,对于基本类型列表,直接使用Intent的方法;对于自定义对象,根据性能需求选择Serializable或Parcelable;如果需要全局...
在Android中,Bundle主要用作Intent的附加数据,允许开发者在不同组件间(如Activity、Service等)传递复杂的数据结构。下面我们将详细介绍如何使用Bundle进行数据传递。 1. 创建Bundle对象:首先,你需要创建一个...
标题“android bundle message”暗示我们将探讨如何在Android应用中使用Bundle来传递消息和数据。在这个源码中,我们可以期待看到如何创建、添加键值对以及如何在接收端提取这些数据。 首先,让我们理解什么是...
Intent传递对象是Android开发中的常见需求,通常有两种主要的方法:使用`Bundle.putSerializable()`和`Bundle.putParcelable()`。这两种方法都需要传递的Object对象满足特定的条件。 1. **Serializable接口**: ...
Android中的不同Activity之间传递对象,我们可以考虑采用Bundle.putSerializable(Key,Object);也可以考虑采用Bundle.putParcelable(Key, Object);其中前面一种方法中的Object要实现Serializable接口,后面一种方法中...
本篇将深入探讨Android中Activity之间的跳转机制以及如何进行数据交换。 首先,Activity的跳转主要通过Intent对象来实现。Intent在Android中充当了组件间通信的信使,它包含了启动另一个Activity所需的信息。创建...
2. 在发送Intent时,使用`putSerializable()`方法: ```java MyGenericType<T> myObject = ...; Intent intent = new Intent(this, TargetActivity.class); intent.putExtra("myKey", myObject); startActivity...
首先,我们要了解在Android中,有两种主要的方式来传递数据: 1. 使用Intent传递简单数据 2. 使用Bundle传递复杂数据 **一、使用Intent传递简单数据** Intent是Android中用来启动Activity或Service的类,也可以...
本文将详细讲解如何通过Intent使用Bundle在Android中传递对象。 首先,我们需要知道在Android中,如果想要通过Intent传递一个对象,这个对象必须是可序列化的。在Java中,有两种基本的序列化方式:`java.io....
在Android应用开发中,Intent是一种非常关键的组件,它用于在不同的组件之间传递消息和数据。Intent不仅可以启动或启动服务,还可以实现Activity之间的数据传递。本文将深入探讨Android Intent的多种传值方式。 1. ...
今天要给大家讲一下Android中Intent中如何传递对象,就我目前所知道的有两种方法,一种是Bundle.putSerializable(Key,Object);另一种是Bundle.putParcelable(Key, Object);当然这些Object是有一定的条件的,前者是...
在Android应用开发中,...总结,Intent结合Bundle是Android中传递复杂数据的有效手段。理解并熟练运用Bundle的存储和获取机制,能帮助开发者更好地实现Activity间的通信,同时遵循最佳实践,确保应用的稳定性和性能。
除了这两种方法,还有一些其他策略可以考虑,例如使用Gson库将对象转换为JSON字符串,然后在Intent中传递,之后再反序列化回对象。这种方法适用于传递复杂对象,但可能会增加应用程序的依赖。 总的来说,Android ...
总结,Activity间数据传递是Android开发中常见的操作,理解并熟练掌握Intent传参、Bundle传参以及静态变量的使用方法,能有效提升开发效率。不过,应当注意,静态变量的使用应谨慎,尽量避免造成不必要的副作用。在...
本篇文章将详细探讨如何在Android中通过Intent进行Activity之间的数据传递,以及使用Parcelable和Serializable这两种序列化方式来传递复杂的数据对象。 首先,Intent是Android系统中用于启动组件(如Activity、...
在Android中,如果要将复杂对象(如自定义类实例)放入`Bundle`,对象需要实现`Parcelable`接口。`Parcelable`是Android平台提供的一种高效的数据序列化方式,它比`Serializable`更快,更适合用于内存和Intent传输。...
总的来说,Android中不同Activity间的数据传递主要是通过Intent和Bundle进行的,可以传递基本类型的数据以及实现了`Parcelable`或`Serializable`接口的对象。选择哪种方式取决于数据的复杂性和性能需求。`Parcelable...
总之,`onSaveInstanceState()`是Android中用于保存Activity临时状态的重要工具,合理使用它可以提高用户体验,避免用户在意外情况下丢失数据。但同时,开发者也需要理解其局限性,并结合其他持久化存储手段来确保...