Intent和Bundle传值问题

Intent通过携带Bundle传值方式我已知有两种,但常常记混,选择多了倒不如只有一种选择,中规中矩不失为一种好的操作。
所以以后传值就用下面这种固定的方法:

从A页面向B页面传递:
注意,传递非简单数据类型(如对象)的时候,该类型要实现Serializable接口

    Intent intent = new Intent(A.this, B.class);
    Bundle bundle = new Bundle();

    bundle.putSerializable("catPrizeBean", catPrizeBean);//传对象
    bundle.putInt("position", position);//传int值(还有其他的简单数据类型)
    bundle.putSerializable("catPrizeAwardList", (Serializable) mAdapter.getAllData());//传list集合

    intent.putExtras(bundle);//就是这种传递bundle的方式

    startActivity(intent);   //B页面不回传值                                                                         
    //startActivityForResult(intent, REQUEST_CODE_CAT_OSCAR);B页面回传值

B页面接收A页面的传值:

    Intent intent = getIntent();
    if (intent == null){
        return;
    }

    if (intent.hasExtra("catPrizeBean")){
        catPrizeBean = (CatPrizeBean) intent.getSerializableExtra("catPrizeBean");//获取类对象
    }
    if (intent.hasExtra("position")){
        position = intent.getIntExtra("position", -1);//获取int值(或者其他简单数据类型)
    }
    if (intent.hasExtra("catPrizeAwardList")){
        catPrizeAwardList = (List) intent.getSerializableExtra("catPrizeAwardList");//获取list集合
    }

结束。

你可能感兴趣的:(Intent和Bundle传值问题)