项目中用到两种方式实现不同activity的数据共享。
第一种是在两个activity之间实现。在页面跳转时同时传递数据。
clinic_reception_list.java:
Intent intent = new Intent(clinic_reception_list.this, clinic_reception_look1.class);
Bundle bundle = new Bundle(); //bundle类是一个key-value对
bundle.putInt("number", number[position]); //number[position]是该activity已知的int,对应key为“number”
intent.putExtras(bundle); //intent的extras属性传递数据
startActivity(intent); //页面跳转
clinic_reception_look1.java:
Bundle bundle = this.getIntent().getExtras();
int number = bundle.getInt("number"); //获取之前的activity中的number对应的value
第二种方式是利用扩展application组件类的方式实现全局数据的共享,这个可以实现该项目的所有activity共享数据。我在用户登录后就需要将用户名和ID作为全局变量共享,以在之后的activity获得用户相关的数据。
首先需要新建一个application类 applicationTrans.java
package com.example.misssea.new_health;
import android.app.Application;
public class applicationTrans extends Application{
private String name;
private String userID;
private String URL;
public String get_Name() {
return name;
}
public String get_userID() {
return userID;
}
public String getURL(){
return URL;
}
public void setValue(String name,String userID) {
this.name = name;
this.userID=userID;
}
public void setURL(String url){
this.URL = url;
}
}
然后在配置文件AndroidManifest.xml中将application的name修改
<application
android:name=".applicationTrans"
之后可以在登录界面进行赋值:
stringname= edt_name.getText().toString();
stringID=edt_id.getText().toString(); //获取用户名和用户ID
((applicationTrans)getApplication()).setValue(stringname,stringID); //共享用户名
在别的activity中能够获取用户名和ID
stringname=((applicationTrans)getApplication()).get_Name();
stringID=((applicationTrans)getApplication()).get_userID(); //获取用户信息