使用全局变量传递数据,所谓的全局变量类似于jee开发中的application变量。申明后,全局调用。只有当内存被清理后,才被销毁。否则一直可以调用。
还是使用点击一个button,传递一个数据到另一个页面中显示。
首先,新建工程,然后,打开mainActivity.xml文件,然后,添加button。
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="使用Application传递数据" />
先新建一个MyApp.java类,存储全局变量
public String name;
@Override
public void onCreate() {
// TODO Auto-generated method stub
super.onCreate();
setName("hello");
}
public String getName() {
return name;
} public void setName(String name) {
this.name = name;
} public MyApp() {
// TODO Auto-generated constructor stub
}
然后在MainActivity.java中,添加
private Button button;
private MyApp myapp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button = (Button)this.findViewById(R.id.button);
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//获取全局变量数据
myapp=(MyApp)getApplication();
//myapp.setName("world");//可重新赋值
Intent intent = new Intent(MainActivity.this,OtherActivity.class);
startActivity(intent);
}
});
}
新建布局文件other.xml文件加入
<TextView android:id="@+id/msg" android:layout_width="fill_parent"
android:layout_height="fill_parent"/>
新建OtherActivity.java文件
public class OtherActivity extends Activity {
private MyApp myapp;
private TextView textview;
public OtherActivity() {
// TODO Auto-generated constructor stub
} @Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.other);
textview = (TextView)this.findViewById(R.id.msg);
myapp = (MyApp)getApplication();
textview.setText("name---->"+myapp.getName());
}
}
最后在清单文件中注意:先在标签application中加入
<activity android:name=".OtherActivity"></activity>
再在application标签中加入属性android:name=".MyApp"