android Activtity 之间传递对象的方法 application
2014-01-14 11:12
309 查看
这里随便记录下我不知道这样的方法行不行,如果不好请大家指正~
这里主要说下android中activity之间的传值方法以前最常用的是Intentbundle来传递一些数据,但是这个只能传递写基本数据类型。、如果要传LISTPOJO之类的就力不从心了,要么重写这个Bundle理论上是可以的扩展下,application是整个应用程序中生命周期最长的,并且是全局的单列的,任何一个地方我们获取到的都是一样的,所以我们可以在里面缓存一些简单的数据,这里就不说这个这个了,我们来说下application这个,具体概念大家去搜下这个我就说下用这个如何传递数据下面看代码吧很简单就几行,首先我们自己定义一个application代码如下
publicclassMyApplicationextendsApplication{publicstaticMyApplicationmyApplication;publicstaticMap<String,Object>applicationMap;publicstaticMyApplicationgetInstance(Contextcontext){if(myApplication==null){myApplication=(MyApplication)context.getApplicationContext();}returnmyApplication;}publicMap<String,Object>getApplicationMap(){if(applicationMap==null){applicationMap=newHashMap<String,Object>();}returnapplicationMap;}}完成后记得要在AndroidManifest.xml的application中加个name属性并且制定我们自定义的application
<applicationandroid:name=".MyApplication"android:allowBackup="true"android:icon="@drawable/ic_launcher"android:label="@string/app_name"android:theme="@style/AppTheme"><activityandroid:name="com.example.application.MainActivity"android:label="@string/app_name"><intent-filter><actionandroid:name="android.intent.action.MAIN"/><categoryandroid:name="android.intent.category.LAUNCHER"/></intent-filter></activity><activityandroid:name="com.example.application.OtheActivity"android:theme="@style/AppTheme"/>接下去是2个activity
publicclassMyApplicationextendsApplication{publicstaticMyApplicationmyApplication;publicstaticMap<String,Object>applicationMap;publicstaticMyApplicationgetInstance(Contextcontext){if(myApplication==null){myApplication=(MyApplication)context.getApplicationContext();}returnmyApplication;}publicMap<String,Object>getApplicationMap(){if(applicationMap==null){applicationMap=newHashMap<String,Object>();}returnapplicationMap;}}
publicclassOtheActivityextendsActivity{privateMyApplicationapplication;privateUserBeanuser;@OverrideprotectedvoidonCreate(BundlesavedInstanceState){//TODOAuto-generatedmethodstubsuper.onCreate(savedInstanceState);setContentView(R.layout.other_main);application=MyApplication.getInstance(this);TextViewt=(TextView)findViewById(R.id.name1);t.setText(application.getApplicationMap().get("name").toString());user=(UserBean)application.getApplicationMap().get("user");TextViewt1=(TextView)findViewById(R.id.name2);t1.setText(user.getName());}}
相关文章推荐
- How to make more objects as same size in Visio 2010
- cocos2dx eclipse 设置C++ include 包含目录
- android ffmpeg 编译
- google新版本android系统正式推出
- Android基础3
- Android基础4(内容提供者ContentProvider)
- Android多线程下载
- android获取手机位置服务
- android屏幕适配
- Android屏蔽后退键的方法
- android判断是否是第三方应用
- android自定义animation
- VNC远程桌面控制手机端
- Genymotion does not start Android virtual device
- Android软件开发之获取通讯录联系人信息(二十九)
- 获取android多个sd卡路径的方法
- cocos2d-x学习日志(1)--视角跟随主角
- android 文件下载 inputstream 为 null
- 在android中使用SharedPreferences进行数据存储
- 给移动端和pc端不同的展现形式