android新窗口以及传值

android新窗口以及传值 (2013-04-18 16:55:02)转载▼
分类: android
1,新建一个activity,如Activity2
2,在主程序中:
      Intent intent = new Intent(MainActivity.this, Activity2.class);
       //打开新窗口。参数:主窗口,被调用窗口
     
      Bundle bundle = new Bundle();//通过Bundle实现数据的传递:
      bundle.putString("key1", "value1");// key1为名,value1为值
      bundle.putString("key2", "value2");
      bundle.putInt("keyInt1", 100);
      intent.putExtras(bundle); // 传数据
 
      如果不需要子窗口回传数据:
      startActivity(intent);
     
      如果需要子窗口回传数据:
      (1),startActivityForResult(intent, requestCode);
       此处要注意,requestCode是子窗口的id标志,而且必须大于1,否则回调函数onActivityResult不响应!  
      (2),实现回调函数onActivityResult:
 @Override
 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  .....
 }
     主窗只有一个回调函数,如果调用了几个子窗口,就需通过requestCode来区分。而resultCode则是子窗口的返回值,可以用于后续的判断。
3,在新窗口中仍然使用Bundle取得数据:
  Bundle bundle = this.getIntent().getExtras();
  String s1 = bundle.getString("key1");
  String s2 = bundle.getString("key2");
  int i=bundle.getInt("keyInt1");
 
4,如何返回到主窗口?
    Intent intent=new Intent();   
    Bundle bunle=new Bundle();   
    bunle.putString("key1", "这是子窗口的返回数据.");  
    intent.putExtras(bunle);
    //SubActivity.this.setResult(RESULT_OK, intent);
    //SubActivity.this.finish();
    setResult(RESULT_OK, intent);  //设置返回结果
    finish(); //关闭子窗口,否则数据无法返回
5,参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值