android intent 传递list 或 对象

转自:http://blog.sina.com.cn/s/blog_632b619d01011kx7.html


方法一: 
如果单纯的传递List<String> 或者List<Integer>的话就可以直接使用

Java代码  

  1. intent.putStringArrayListExtra(name, value)   
  2. intent.putIntegerArrayListExtra(name, value)  




方法二: 
如果传递的是List<Object>,可以把list强转成Serializable类型,然后通过

Java代码  

  1. putExtras(key, (Serializable)list)  


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

Java代码  

  1. (List<YourObject>) getIntent().getSerializable(key)  


就可以接受到List<YourObject>数据了 

但是 切记 你的YourObject类必须要实现Serializable接口 

方法三: 
一种是

Java代码  

  1. Bundle.putSerializable(Key,Object);  


另一种是

Java代码  

  1. Bundle.putParcelable(Key, Object);  


当然这些Object是有一定的条件的,前者是实现了Serializable接口,而后者是实现了Parcelable接口 


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

1
、创建一个属于你自己的android.app.Application的子类 
2
、在manifest中申明一下这个类, 
3
、这时android就为此建立一个全局可用的实例,你可以在其他任何地方使用Context.getApplicationContext()方法获取这个实例,进而获取其中的状态(变量)。 

继承Application

Java代码  

  1. class MyApp extends Application {   
  2.   
  3.   private String myState;   
  4.   
  5.   public String getState(){   
  6.     return myState;   
  7.   }   
  8.   public void setState(String s){   
  9.     myState s;   
  10.   }   
  11.  



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

Java代码  

  1. <application android:name=".MyApp"            
  2. android:icon="@drawable/icon"  
  3. android:label="@string/app_name">  



使用

Java代码  

  1. class Blah extends Activity {   
  2.   
  3.   @Override  
  4.   public void onCreate(Bundle b){   
  5.     ...   
  6.     MyApp appState ((MyApp)getApplicationContext());   
  7.     String state appState.getState();   
  8.     ...   
  9.   }   
  10.  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值