Android全局变量值之ApplicationContext

第一步:定义全局变量对象(类),继承至 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();

	}


 

 

  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值