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