您的位置:首页 > 移动开发 > Android开发

【Android新手笔记四】activity之间的数据共享

2016-06-02 14:13 423 查看
项目中用到两种方式实现不同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(); //获取用户信息
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: