天天看点

android intent 传递list或者对象

方法一: 

如果单纯的传递list<string> 或者list<integer>的话 就可以直接使用 

java代码 

intent.putstringarraylistextra(name, value)  

intent.putintegerarraylistextra(name, value)  

方法二: 

如果传递的是list<object>,可以把list强转成serializable类型,然后通过 

java代码  putextras(key, (serializable)list)  

方法传递过去,接受的时候用 

java代码  (list<yourobject>) getintent().getserializable(key)  

就可以接受到list<yourobject>数据了 

但是 切记 你的yourobject类必须要实现serializable接口 

方法三: 

一种是 

java代码  bundle.putserializable(key,object);  

另一种是 

java代码  bundle.putparcelable(key, object);  

当然这些object是有一定的条件的,前者是实现了serializable接口,而后者是实现了parcelable接口 

方法四: 

用intent传来传去 觉得不方便 我们可以写一个在application里面的全局数据 

1、创建一个属于你自己的android.app.application的子类 

2、在manifest中申明一下这个类, 

3、这时android就为此建立一个全局可用的实例,你可以在其他任何地方使用context.getapplicationcontext()方法获取这个实例,进而获取其中的状态(变量)。 

继承application 

java代码  

class myapp extends application {  

    private string mystate;  

    public string getstate(){  

    return mystate;  

  }  

  public void setstate(string s){  

    mystate = s;  

}  

关于androidmanifest.xml中的配置,原来直接给application加个name就可以了,如下面所示: 

java代码  <application android:name=".myapp"           android:icon="@drawable/icon"  android:label="@string/app_name">  

使用 

class blah extends activity {  

    @override  

  public void oncreate(bundle b){  

    ...  

    myapp appstate = ((myapp)getapplicationcontext());  

    string state = appstate.getstate();  

}  

继续阅读