关于Application保存全局变量
2016-05-29 本文已影响1415人
JUNE言JUNE语
关于全局变量Application
继承application的MyApplication,是Android中的一个全局变量。举个最简单的例子,一个包含有登录功能的app,在登录之后可以将用户信息放在MyApplication中,之后不管跳转到哪个activity,都可以直接调用相关信息。
创建MyApplication,设置全局变量Username
private String username = "";
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
在activity_main.xml
定义一个EditText跟两个Button(EditText用于输入,Button一个用绑定事件将EditText获取的String保存到Application,另一个用于跳转到另外一个activity)
<EditText
android:id="@+id/username_et"
android:layout_width="match_parent"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="存储String" />
<Button
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="跳转" />
MainActivity.java中
//获取Application
myApplication = (MyApplication) getApplication();
btn1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
//将获取的String赋值给MyApplication的username
String username = username_et.getText().toString().trim();
myApplication.setUsername(username);
}
});
btn2.setOnClickListener(new OnClickListener() {
//跳转到新的Activity,在新的Activity中调用MyApplication中的username
@Override
public void onClick(View arg0) {
Intent intent = new Intent(MainActivity.this,testGetApplication.class);
startActivity(intent);
}
});
新的Activity中
btn3 = (Button) findViewById(R.id.btn3);
tv = (TextView) findViewById(R.id.tv);
myApplication = (MyApplication) getApplication();
btn3.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
tv.setText(myApplication.getUsername());
}
});
测试
MainActivity中输入 跳转到新的Activity,get到Application中保存的数据由此可以看出Application保存全局变量
记录下自己容易忘记的
才不会每次学完用完
又忘记了