两个Activity之间的交互startActivityForResult的使用
代码如下:
1 package com.zzw.teststartintentforrequest; 2 3 import android.app.Activity; 4 import android.content.Intent; 5 import android.os.Bundle; 6 import android.util.Log; 7 import android.view.View; 8 import android.view.View.OnClickListener; 9 import android.widget.TextView; 10 11 public class MainActivity extends Activity { 12 13 private final int REQUESTCODE_MAIN = 1; 14 15 private final String KEY_MAIN = "key_main"; 16 private final String KEY_B = "key_b"; 17 18 private TextView textView; 19 20 @Override 21 protected void onCreate(Bundle savedInstanceState) { 22 super.onCreate(savedInstanceState); 23 setContentView(R.layout.activity_main); 24 25 textView = (TextView) findViewById(R.id.textView_main); 26 27 findViewById(R.id.button_main).setOnClickListener(new OnClickListener() { 28 29 @Override 30 public void onClick(View v) { 31 Intent intent = new Intent(MainActivity.this, ActivityB.class); 32 int a=(int) (Math.random()*100); 33 int b=(int) (Math.random()*100); 34 int[] nums = { a, b }; 35 intent.putExtra(KEY_MAIN, nums); 36 startActivityForResult(intent, REQUESTCODE_MAIN); 37 } 38 }); 39 } 40 41 @Override 42 protected void onActivityResult(int requestCode, int resultCode, Intent data) { 43 if(data!=null){ 44 Log.d("-------", "requestCode:"+requestCode+" resultCode:"+resultCode); 45 textView.setText(data.getIntExtra(KEY_B, 0)+""); 46 } 47 } 48 }
1 package com.zzw.teststartintentforrequest; 2 3 import android.app.Activity; 4 import android.content.Intent; 5 import android.os.Bundle; 6 import android.view.View; 7 import android.view.View.OnClickListener; 8 import android.widget.TextView; 9 10 public class ActivityB extends Activity { 11 12 private final int RESULTCODE_B=2; 13 14 private final String KEY_MAIN="key_main"; 15 private final String KEY_B="key_b"; 16 17 private TextView textView; 18 19 20 @Override 21 protected void onCreate(Bundle savedInstanceState) { 22 super.onCreate(savedInstanceState); 23 setContentView(R.layout.activityb); 24 25 textView=(TextView) findViewById(R.id.textView_B); 26 27 int nums[]=this.getIntent().getIntArrayExtra(KEY_MAIN); 28 29 final int sum=nums[0]+nums[1]; 30 31 textView.setText(nums[0]+"+"+nums[1]+"="+sum); 32 33 findViewById(R.id.button_B).setOnClickListener(new OnClickListener() { 34 35 @Override 36 public void onClick(View v) { 37 Intent intent=new Intent(ActivityB.this,MainActivity.class); 38 intent.putExtra(KEY_B,sum); 39 ActivityB.this.setResult(RESULTCODE_B, intent); 40 ActivityB.this.finish(); 41 } 42 }); 43 } 44 45 46 }