一:用Intent传递数据
1:传递
String mydata = edt_data.getText().toString();
Intent intent = new Intent();
intent.setClass(MainActivity.this,OtherActivity.class);
intent.putExtra("data", mydata);
startActivity(intent);
能够传递对象,如String,Int,若是是自定义对象,该类要继承Serializable;
2:获取数据
Bundle bundle = getIntent().getExtras();
String s=bundle.getString("data");
二:静态传参
用一个静态类来保存全部的静态参数。
如:StateObject类中
private state String name;
当我要存数据的时候
StateObject.name = "ssss";
在其余的Activity中能够引用
String s = StateObject.name;
注:当Activity销毁时要把用了的数据也销毁,避免数据混乱。
三:粘贴板(不作介绍):不多使用
四:用Applications传参
(1):建立一个类(MyApplication),该类继承Application
public class MyApplication extends Application {
private String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
(2):在androidManifest.xml中对Application进行配置,告诉app在程序执行前运行MyApplication而不是Application
在Application标签中添加
android:name="com.example.hello.MyApplication"//为所创建的类的路径
(3):对Application对象的使用(存值)
Intent intent = new Intent(MainActivity.this,OtherActivity.class);
MyApplication app= (MyApplication) getApplication();
app.setName(“张三”);
startActivity(intent);
(4):对Application对象的使用(取值)
MyApplication app= (MyApplication) getApplication();
String data = app.getName();
Toast.makeText(OtherActivity.this, data, Toast.LENGTH_SHORT).show();
-------------------------------------------------------------------------------------------------------------------------
对Application的优化
(1):对MyApplication类进行单例化。(在没有继承Activity类的类是没法使用getApplication()方法的)
private
static
MyApplication instance;
public
static
MyApplication getInstance() {
return instance;
}
public void onCreate() {
super.onCreate();
this.instance =this;
}
(2):
采用HashMap<Key,Value>存储数据,避免变量过多。
private HashMap<String,Object> map = new HashMap<String,Object>();
public HashMap<String, Object> getMap() {
return map;
}
(3):存数据
MyApplication app= MyApplication.
getInstance
();
app.getMap().put("1", "你好");
app.getMap().put("2", "很好");
app.getMap().put("3", "还好");
app.getMap().put("4", "很差");
(4):取数据
String a=
(String) app.getMap().get("1");
String a=
(String) app.getMap().get("2");
String a=
(String) app.getMap().get("3");
String a=
(String) app.getMap().get("4");
(5):在该Activity使用完数据后,要及时清除不要的数据,避免数据混乱
protected void onDestroy() {
super.onDestroy();
app.getMap().remove("1");
app.getMap().remove("2");
app.getMap().remove("3");
app.getMap().remove("4");
}