声明:本文转自feiyangxiaomi的博客:http://blog.csdn.net/feiyangxiaomi/article/details/9966215仅供学习使用,转载请指明原作者。
文中介绍了两种在Android中使用全局变量的方法,其中第一中是android推荐的,但是只能用于继承Activity类使用,第二种是java中设置静态变量和方法适用于所有类。
1.使用application来保存全局变量
1.1定义Data类继承Application Data.class
importandroid.app.Application;public class Data extendsApplication{privateString b;publicString getB(){return this.b;
}public voidsetB(String c){this.b=c;
}
@Overridepublic voidonCreate(){
b= "hello";super.onCreate();
}
}
1.2在manifest.xml中声明application
android:name="com.animator1.Data" >
1.3创建两个Activity
MainActivity.class
public class MainActivity extendsActivity {
@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn= (Button) this.findViewById(R.id.button1);final TextView txtview = (TextView) this.findViewById(R.id.main);final Data app =(Data)getApplication();
txtview.setText(app.getB());
btn.setOnClickListener(newView.OnClickListener() {
@Overridepublic voidonClick(View v) {//TODO Auto-generated method stub
app.setB("no_hello");
txtview.setText(app.getB());
Intent intent= new Intent(MainActivity.this, secondActivity.class);
startActivity(intent);
}
});
}
}
secondActivity.class
public class secondActivity extendsActivity{
@Overrideprotected voidonCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);
setContentView(R.layout.second);
Button btn= (Button) this.findViewById(R.id.button2);final TextView txtview = (TextView) this.findViewById(R.id.second);final Data app =(Data)getApplication();
txtview.setText(app.getB());
btn.setOnClickListener(newView.OnClickListener() {
@Overridepublic voidonClick(View v) {//TODO Auto-generated method stub
app.setB("hello");
txtview.setText(app.getB());
Intent intent= new Intent(secondActivity.this, MainActivity.class);
startActivity(intent);
}
});
}
}
1.4运行程序
说明:程序首先进入MainActivity.class中,获取Data中变量b的值,显示图1所示的界面hello,单击button后app.setB("no_hello"), 修改变量b的值。
跳转到secondActivity.class,获取Data中变量b的值,显示图2所示的界面no_hello,单击button后app.setB("hello"), 修改变量b的值。
跳转回MainActivity.class…… 循环
2.使用普通的类Data.class来保存全局变量
方法和上面差不多。
1.1 定义Data.class
public classData{private static String a ="feiyangxiaomi";public staticString getA() {returna;
}public static voidsetA(String a) {
Data.a=a;
}
}
1.2创建两个Activity
MainActivity.class
public class MainActivity extendsActivity {
@Overrideprotected voidonCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button btn= (Button) this.findViewById(R.id.button1);final TextView txtview = (TextView) this.findViewById(R.id.main);
txtview.setText(Data.getA());
btn.setOnClickListener(newView.OnClickListener() {
@Overridepublic voidonClick(View v) {//TODO Auto-generated method stub
Data.setA("no_feiyangxiaomi");
Intent intent= new Intent(MainActivity.this, secondActivity.class);
startActivity(intent);
}
});
}
}
secondActivity.class
[java] view plaincopy
public class secondActivity extendsActivity{
@Overrideprotected voidonCreate(Bundle savedInstanceState){super.onCreate(savedInstanceState);
setContentView(R.layout.second);
Button btn= (Button) this.findViewById(R.id.button2);final TextView txtview = (TextView) this.findViewById(R.id.second);
txtview.setText(Data.getA());
btn.setOnClickListener(newView.OnClickListener() {
@Overridepublic voidonClick(View v) {//TODO Auto-generated method stub
Data.setA("feiyangxiaomi");
Intent intent= new Intent(secondActivity.this, MainActivity.class);
startActivity(intent);
}
});
}
}
1.3运行程序
说明:程序首先进入MainActivity.class中,获取Data中变量b的值,显示图1所示的界面feiyangxiaomi,单击button后app.setB("no_feiyangxiaomi"), 修改变量b的值。
跳转到secondActivity.class,获取Data中变量b的值,显示图2所示的界面no_feiyangxiaomi,单击button后app.setB("feiyangxiaomi"), 修改变量b的值。
跳转回MainActivity.class…… 循环