Activity之间的回调

 Source Code:  
    (1)MainActivity.class 
    public class MainActivity extends Activity {  
        @Override  
        protected void onCreate(Bundle savedInstanceState) {  
            super.onCreate(savedInstanceState);  
            setContentView(R.layout.activity_main);  
            Button start = (Button)findViewById(R.id.start);  
            start.setOnClickListener(new View.OnClickListener() {  
                  
                @Override  
                public void onClick(View v) {  
                    Intent intent = new Intent();  
                    intent.setClass(MainActivity.this, OtherActivity.class);  
                    Bundle bundle = new Bundle();  
                    bundle.putString("attribute", "属性");  
                    bundle.putInt("age", 10);  
                    intent.putExtras(bundle);  
                    MainActivity.this.startActivityForResult(intent, 100);// 通过该方法打开,当中的第二个参数为请求码  
                }  
            });  
        }  
      /**  
       * requestCode  对应startActivityForResult中的第二个参数  
       * resultCode  <span>整数结果代码返回的子Activity在setresult()。</span>     
       */  
        @Override  
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
            // TODO Auto-generated method stub  
            String result = data.getStringExtra("result");  
              
              
            Toast.makeText(this, result, 1).show();  
        }  
      
    (2)OtherActivity.class  
      
    public class OtherActivity extends Activity {  
      
        @Override  
        protected void onCreate(Bundle savedInstanceState) {  
            // TODO Auto-generated method stub  
            super.onCreate(savedInstanceState);  
            this.setContentView(R.layout.activity_other);  
            Intent intent = getIntent();  
            Bundle bundle = intent.getExtras();  
            String str = bundle.getString("attribute");  
            System.out.println(str);  
        }  
      
        public void CallBackActivity(View v) {  
            Intent data = new Intent();  
            data.putExtra("result", "接收到了测试数据 ");  
      
            setResult(30, data); // 设置返回数据,  
            finish(); // 关闭当前Activity  
        }  
      
    }  
    问题:如果setResult 方法不起作用,没有回调 onActivityForResult() 方法需药注意以下两点:  
          1、 setResult(30, data); // 设置返回数据,中的  resultCode是否大于0;  
          2、 this.startActivityForResult(intent, 200);// 通过该方法打开,当中的第二个参数为请求码
			  sourceCode:requestCode If >= 0, this code will be returned in onActivityResult() when the activity exits.
		      如果> = 0 requestCode,此代码将返回onactivityresult()活动时退出。  
          3、如果在otherActivity清单文件中声明了android:launchMode="singleInstance",这样的话,MainActivity,otherActivity将不会在同一个栈中,导致setResult(RESULT_OK);失败。  
      


  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值