一.使用Intent意图传值
public class ActivityStudy01 extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_study_01);
//创建一个意图对象
Intent intents = new Intent();
intents.putExtra(key,name);
//接受意图传值,获取当前组件的意图对象
Intent intents = getIntent();
String result = intents.getStringExtra(Key);
}
}
二.使用全局变量传值
首先新建一个application类继承Application。这里我定义了一个Map集合,一个字符串对象。
public class MyApplication extends android.app.Application {
public Map<String,Object> appMap = new HashMap<String,Object>();
public String appUserName = null;
}
然后AndroidMainfest.xml中配置application的name属性(命名规则和包名一样)
public class ActivityStudy01 extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_study_01);
//创建一个意图对象
Intent intents = new Intent();
intents.putExtra(key,name);
//接受意图传值,获取当前组件的意图对象
Intent intents = getIntent();
String result = intents.getStringExtra(Key);
}
}
然后在Activity中实例化自己的MyApplication类,并设置值
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyApplication app = (MyApplication) getApplication();
app.appMap.put("name", "zhangsan");
app.appMap.put("age", 20);
app.appUserName = "lisi";
}
}
在接收的Activity中取出
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyApplication app = (MyApplication) getApplication();
String name = app.appMap.get("name").toString();
int age = Integer.valueOf(app.appMap.get("age").toString());
String userName = app.appUserName;
System.out.println("name:"+name+"\nage:"+age+"\nuserName:"+userName);
}
}
三.静态变量(不建议使用就不写了)