Android全局变量值之ApplicationContext
来源:互联网 发布:windows游戏模拟器 编辑:程序博客网 时间:2024/05/29 16:25
第一步:定义全局变量对象(类),继承至 android.app.Application ,代码如下:
- import android.app.Application;
- public class ApplicationHelper extends Application {
- // 操作帐号
- private String logicAccount="";
- // 操作密码
- private String logicPass="";
- public String getLogicAccount() {
- return logicAccount;
- }
- public void setLogicAccount(String logicAccount) {
- this.logicAccount = logicAccount;
- }
- public String getLogicPass() {
- return logicPass;
- }
- public void setLogicPass(String logicPass) {
- this.logicPass = logicPass;
- }
- }
第二步:给全局变量赋值,代码如下:
- ((ApplicationHelper)getApplicationContext()).setLogicAccount( name.getText().toString());
- ((ApplicationHelper)getApplicationContext()).setLogicPass(pwd.getText().toString());
第三步:把全局变量类注册到 AndroidManifest.xml文件中去:
- <application
- android:name=".ApplicationHelper"
- android:icon="@drawable/ic_launcher"
- android:label="@string/app_name"
- android:theme="@style/AppTheme" >
- <!--应用程序的其他Activity注册内容-->
- </application>
第四步:获取全局变量值,代码如下:
- String userAccount= ((ApplicationHelper)getApplicationContext()).getLogicAccount() ;
- String userPass= ((ApplicationHelper)getApplicationContext()).getLogicPass();
- System.out.println(userAccount);
- System.out.println(userPass);
注意问题:
1.无论是给全局变量赋值还是取值必须 使用 (ApplicationHelper)getApplicationContext() 对象,不可以使用 ApplicationHelper aHelper= (ApplicationHelper)getApplicationContext() , 因为 每 使用一次 ApplicationHelper aHelper 就是新创建一个对象,每次都是新对象,变量的值就不能共享,也就失去全局变量存在意义。
2.把全局变量注册到AndroidManifest.xml 时应该注意,一定要把 全局变量对象类(ApplicationHelper)定义到要使用全局变量的应用(application)中,如果给全局变量赋值 和注册全局变量类不在同一个应用中,无法共享全局变量值。
3. Application全局变量取值时,最好在onCreate方法中去,不然会引发空指针异常问题(这部分为后期开发遇到问题,属性名称和方法名称和以前不一致,不过不影响大家学习)
错误代码:
- private String estination_code=((ApplicationHelper)getApplicationContext()).getDestination_code();
- private String user_name=((ApplicationHelper)getApplicationContext()).getUser_name();
会引发空指针异常
正确代码:
- private String estination_code="";
- private String user_name="";
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_challenge);
- estination_code=((ApplicationHelper)getApplicationContext()).getDestination_code();
- user_name=((ApplicationHelper)getApplicationContext()).getUser_name();
- }
0 0
- Android全局变量值之ApplicationContext
- Android全局变量值之ApplicationContext
- Android全局变量值之ApplicationContext
- DZ60 下全局变量值异常
- stm32中断函数改变全局变量值
- C++全局变量值被修改
- 面试之变量值交换
- 全局变量值交换,swap函数参数要用指针
- javascript对全局变量值的修改(如记数器)
- activiti之流程变量值Business_key
- activiti之流程变量值Business_key
- activiti之流程变量值Business_key
- android settings- 数据管理加入系统变量值
- KEIL调试时的WATCH窗口是查看的全局变量值,不能看内部变量值
- 保存 全局变量值 保存页面值 static Application Session Cookie ViewState Cache Hidden
- 用模块定义文件的方法调用DLL,获取其导出的全局变量值
- Lua学习——C++程序设置Lua全局变量值
- C语言中调用LUA(2)--获取全局变量值
- Hadoop学习之mapreduce:Shuffle 过程笔记
- 单链表的读取
- eclipse上的tomcat部署Web项目到ROOT目录下
- 北方数慧《项目骨干—职业发展和核心能力建设》讲座圆满结束!
- jdk所有版本下载地址
- Android全局变量值之ApplicationContext
- java中常见的几种异常
- JAVA文件加密与解密
- Hibernate HQL语句使用总结
- vim复制,粘贴,删除,撤销,替换,光标移动等用法
- nmap 常用命令
- 启动项目报错
- linux fork()函数详解
- 2219. A famous math puzzle