现有如下假设: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();
}
});
}