您的位置:首页 > 移动开发

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());}}

                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: