美文网首页安卓开发实用集
Intent和Bundle传值问题

Intent和Bundle传值问题

作者: 隰有荷 | 来源:发表于2017-11-20 13:56 被阅读59次

    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<CatPrizeBean>) intent.getSerializableExtra("catPrizeAwardList");//获取list集合
        }
    

    结束。

    相关文章

      网友评论

        本文标题:Intent和Bundle传值问题

        本文链接:https://www.haomeiwen.com/subject/phwmvxtx.html