Activity之间数据的传递

       现有如下假设:A Activity点击之后跳转到 B Activity,B中有个ListView,点击其中一个条款,然后又回到 A , A 此时已获得 B 中点击的那个条款的数据 ( 视频day08 项目装备选择 )。

A Activity中代码:

      public void click(View view) {
        Intent intent = new Intent(this, B.class);
        startActivityForResult(intent, 1);//第一个参数是意图对象,第二个参数是请求码,代表不同的请求
    }

        public void click2(View view) {
        Intent intent = new Intent(this, B.class);
        startActivityForResult(intent, 2);
    }

    


         //下面的要注意请求码和返回码,根据返回的不同的请求码来判断是那个点击事件;不同的返回码代表不同的返回信息;请求码和返回码没有关系不要混淆

       protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        System.out.println("onActivityResult");
        super.onActivityResult(requestCode, resultCode, data);
        if (data != null) {
            if (resultCode == 1) {
                String name = data.getStringExtra("name");
                int acctack = data.getIntExtra("acctack", 0);
                int speed = data.getIntExtra("speed", 0);
                int life = data.getIntExtra("life", 0);
                if (requestCode == 1) {
                    TextView tv_info = (TextView) findViewById(R.id.tv_info);
                    tv_info.setText("主人:" + name + ", 攻击力+" + acctack + ",敏捷+"
                            + speed + ",生命值+" + life);
                } else if (requestCode == 2) {
                    TextView tv_info_baby = (TextView) findViewById(R.id.tv_info_baby);
                    tv_info_baby.setText("小宝宝:" + name + ", 攻击力+" + acctack
                            + ",敏捷+" + speed + ",生命值+" + life);
                }
            }else if(resultCode ==2){
                Toast.makeText(this, "您的金币不足了,赶紧买点卡", 0).show();
            }
        }
    }

B Activity中的代码:

       listView.setOnItemClickListener(new OnItemClickListener() { //设置listView的条款点击事件监听
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) { //该条款的父容器listView , 当前点击的View , 当前条款的位置 , 当前点击的View的id
                ItemInfo info = itemInfos.get(position);
                int acctack = info.getAcctack();
                int speed = info.getSpeed();
                int life = info.getLife();
                String name  = info.getName();
                System.out.println(name);
                Intent data = new Intent();
                data.putExtra("acctack", acctack);
                data.putExtra("speed", speed);
                data.putExtra("life", life);
                data.putExtra("name", name);               
//                Bundle extras = new Bundle();
//                data.putExtras(extras);                       
                //指定了要传递的数据 数据是放在data对象里面.
                //结果码 1 代表购买成功..
                //结果码 2代表用户余额不足
                setResult(1, data);
                if(position==0){
                    //金剑...
                    setResult(2, data);
                }
                //代码方式关闭界面
                finish();
            }
        });
    }


    



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值