android中的全局变量定义与使用 在平时的开发过程中,有时候可能会需要一些全局数据,来让应用中的所有Activity和View都能访问到, 大家在遇到这种情况时,可能首先会想到自己定义一个类,然后创建很多静态成员, android已经为我们提供了这种情况的解决方案: 在Android中,有一个Application类,在Activity中可以使用getApplication()方法获得实例, 使用它就可以获得当前应用的主题、资源文件中的内容等,这个类更灵活的一个特性就是可以被继承, 来添加自己的全局属性.例如开发一个游戏,需要保存分数,那么我们就可以继承Application, 下面是个demo,用的是http://www.eoeandroid.com/thread-30257-1-1.html上面的代码, 其实上面那段话也是对它的修改. 首先,先写个Application的子类: importandroid.app.Application; publicclassGameApplicationextendsApplication{ privateintscore; publicintgetScore(){ returnscore; } publicvoidsetScore(intscore){ this.score=score; } } 然后在manifest.xml文件里面修改: <applicationandroid:name=".GameApplication"android:icon="@drawable/icon"android:label="@string/app_name"> <activityandroid:name=".DemoActivity" android:label="@string/app_name"> <intent-filter> <actionandroid:name="android.intent.action.MAIN"/> <categoryandroid:name="android.intent.category.LAUNCHER"/> </intent-filter> </activity> <activityandroid:name="ResultActivity"></activity> </application> 注意到添加了android:name=".GameApplication".  修改完了以后,再往下看: publicclassDemoActivityextendsActivity{ publicButtonbutton; @Override publicvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setContentView(R.layout.main); button=(Button)findViewById(R.id.button); ((GameApplication)getApplication()).setScore(100); button.setOnClickListener(newView.OnClickListener(){ publicvoidonClick(Viewv){ Intentintent=newIntent(); intent.setClass(DemoActivity.this,ResultActivity.class); startActivity(intent); } }); } } 在这个activity里面设置了分数,我们可以在别的activity里面取出来: publicclassResultActivityextendsActivity{ @Override protectedvoidonCreate(BundlesavedInstanceState){ //TODOAuto-generatedmethodstub super.onCreate(savedInstanceState); setContentView(R.layout.other); TextViewtv=(TextView)findViewById(R.id.tv); intscore=((GameApplication)getApplicationContext()).getScore(); tv.setText("你的成绩是:"+score); } } 这只是个简单的例子,当然,想要完成以上功能,使用intent传值也是可以的,而我们这样还显得麻烦; 但是,如果有很多activity,使用这种方法就会发现很有用, 是不是使用sharepreference也可以完成类似功能呢?回答是肯定的;但是效率方面就要比这个差很多了, sharepreference主要是用来存储数据,你可以退出程序时把所需要保存的简单数据保存到sharepreference里面, 当然复杂的数据,还得使用sqllite.

更多相关文章

  1. Android数据加密之SHA安全散列算法
  2. Android(五)数据存储之五网络数据交互
  3. android 使用contentobserver监听数据库内容变化
  4. Android之Adapter用法
  5. Android读取assets目录下文件数据内容
  6. Blog-06-《一周快速上手Kotlin For Android》-之When分支
  7. android使用mysql的方法总结
  8. Android(安卓)注解基本使用
  9. 一篇看懂Android与Flutter之间的通信

随机推荐

  1. sql 普通行列转换
  2. SQL Server的复制功能
  3. Oracle 10g各个帐号的访问权限、登录路径
  4. SQL Server 更改DB的Collation
  5. SQL Server约束增强的两点建议
  6. 存储过程解密(破解函数,过程,触发器,视图
  7. MSSQL SERVER中的BETWEEN AND的使用
  8. sql 数据库还原图文教程
  9. sql server中的decimal或者numeric的精度
  10. SQL 时间类型的模糊查询