activity的四种传值方式

一 如果是两个相邻activity之间的传值:

可以用Intent传值 对象和单个属性都可以都可以

  1. Intent intent =new Intent(AActivity.this,bActivty.class);//  
  2.    
  3.                   
  4.                // 可以这样
  5.                 intent.putExtra("name", "sss"); 
  6.                intent.putExtra("age", 22); 
  7.               
  8.                 // 也可以直接用bundle放对象
  9.                 Bundle bundle =new Bundle();  
  10.                 bundle.putString("name", "ss");  
  11.                 bundle.putInt("age", 22);  

  1.                 intent.putExtras(bundle);  
  2. ————————————————————————————————————、
  3. 二:Application
  4.  首先可以自定义个Application
  5. public class MyApplication extends Application{			public static User user=null;}
  6. 定义你需要传递的对象或者属性 在A中拿到user 去实例化赋值 然后再除了A的任何一个Activity中去取值使用 如果你的信息比较多 需要每个界面添加不同的信心个这个对象USER 你可以拿到这个user不断去set属性值 到你最后一个界面使用的时候去取值使用就ok ,是不是挺方便
    

三:

 如果是A 界面调到B界面 拿到user的name或者age 需要回到当前A的情况下

  1 在A 中使用 

   startActivityForResult(intent,code); code是返回码数 int

  此方法跳到B 

 2  B可以使用finsh之前 将user或者某个属性扔给A 

  3 A使用 onActivityResult方法接受此intent

  1. @Override  
  2.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
  3.         // TODO Auto-generated method stub  
  4.          user.setName(data.getStringExtra("name"))
  5.         Toast.makeText(this, data.getStringExtra("name"), 1).show();//得到返回的user 此name只是一个key 
  6.         super.onActivityResult(requestCode, resultCode, data);  
  7.     }  

-----------------
四:callback 接口回调

发布了55 篇原创文章 · 获赞 46 · 访问量 11万+

猜你喜欢

转载自blog.csdn.net/Kern_/article/details/42581735
今日推荐