android intent 传递 list<object>

android 中 intent 如何传递arraylist<object>?hashmap

intent可以传递 list<int> 、list<string>等等,但我没找到有object。所以也没list<map<String,object>>类型,

在此可以这样

intent intent = new intent();

intent.putExtra("list",new ArrayList<HashMap<String,String>());

Intent intent = getIntent();
ArrayList<HashMap<String,String>> list = (ArrayList<HashMap<String,String>>)intent.getSerializableExtra("list");
System.out.println("arraylist title:"+list.get(0).get("title"));

但这样做会出现警告

Type safety: Unchecked cast from Serializable to ArrayList<HashMap<String,String>>

未找到解决办法,虽然只是警告,但对有强迫症的我来说很不舒服。于是乎

加入一个中转类

public class TestList implements Serializable{
private static final long serialVersionUID = 1L;
private ArrayList<HashMap<String,String>> list;
public TestList(ArrayList<HashMap<String,String>> list){
this.list = list;
}
public ArrayList<HashMap<String, String>> getList() {
return list;
}

}

执行类

传入

intent.putExtra("testlist", new TestList(list));

获取

TestList tl = (TestList)intent.getSerializableExtra("testlist");
ArrayList<HashMap<String,String>> list = tl.getList();

就这样,如果哪位道友有什么别的好的方法,欢迎指正,毕竟我这算是个投机取巧的方法。

另外怎么在随笔中添加代码段呢?

时间: 2024-12-12 16:51:14

android intent 传递 list<object>的相关文章

android intent 传递list或者对象

方法一: 如果单纯的传递List<String> 或者List<Integer>的话 就可以直接使用 Java代码 intent.putStringArrayListExtra(name, value) intent.putIntegerArrayListExtra(name, value) 方法二: 如果传递的是List<Object>,可以把list强转成Serializable类型,然后通过 Java代码  putExtras(key, (Serializable

Android Intent传递对象小结

效果: 想看实例的,感兴趣的可以看之前的一篇文章 Android ViewPager Fragment实现选项卡 部分关键代码: public class SerializeActivity extends Activity implements Serializable { Button btnlist, btnParcelable, btnSerialze; private final String TAG = "SerializeActivity"; public final s

Android intent传递list或对象

方法一: 如果单纯的传递List<String> 或者List<Integer>的话 就可以直接使用 Java代码 intent.putStringArrayListExtra(name, value) intent.putIntegerArrayListExtra(name, value) 方法二: 如果传递的是List<Object>,可以把list强转成Serializable类型,然后通过 Java代码  putExtras(key, (Serializable

Android Intent传递对象摘要

效果: watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvaG9uZ3NoZW5ncGVuZw==/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" > 想看实例的,感兴趣的能够看之前的一篇文章 Android ViewPager Fragment实现选项卡 部分关键代码: public class SerializeActivity extends

Android intent 传递对象以及返回刷新

之前项目需要,找过这方面知识.所以今天也总结一下.大家都知道activity跳转用intent,Android的当前页面跳转到新的页面.当然跳转的同时常常要携带数据或者对象.那我下面就说说跳转带对象吧.还有在例子当中,新的activity返回时,也有对象一起返回.下面看代码,只要入门Android了都看得懂,我就不再写很多注释了. demo源码例子下载地址:点击此处下载 有两种对象类型可以传递,一是Parcelable,推荐用这个.二是Serializable.当然你在class建立对象时,都要

Android Intent传递对象和集合

Article article = JsonUtils.getArticle(content); intent = new Intent(activity, CompositionCorrect.class); Bundle bundle = new Bundle(); bundle.putSerializable("ARTICLE", article); intent.putExtras(bundle); startActivity(intent); 获取传递的对象 private

Android Intent传递对象为什么要序列化?

为什么?    a.永久性保存对象,保存对象的字节序列到本地文件中 b.对象可以在网络中传输 c.对象可以在IPC之间传递(进程间通信) 那选哪个序列化? 1)在使用内存的时候,Parcelable比Serializable性能高,所以推荐使用Parcelable. 2)Serializable在序列化的时候会产生大量的临时变量,从而引起频繁的GC. 3)Parcelable不能使用在要将数据存储在磁盘上的情况,因为Parcelable不能很好的保证数据的持续性在外界有变化的情况下.尽管Seri

Android Bundle 传递ArrayList&lt;Object&gt;的两种方法

eg. 传递 ArrayList<Group> groups 一:将对象定义成 Parcelable 类型 public class Group implements Parcelable{ } in: Bundle b = new Bundle(); b.putParcelableArrayList("list",groups); out: ArrayList<Group> groups = b.getParcelableArrayList("lis

通过Intent传递对象的两种方法

1 Serializable 2 Parcelable 实现方法: a.定义两个javaBean(Book,Person),分别implements Serializable和Parcelable b.建立Activity,用来传递Object对象和接收Object对象,通过Serializeable和Pacelable方法传递对象,分别调用方法 bundle.putSerializable(String key,Serializable value) bundle.putParcelable(