android学习笔记-Activity之间传值的3种方法

一.使用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);
    }
}

三.静态变量(不建议使用就不写了)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值