Android手机开发:Intent和在Activity之间传递信息


1. 简单的Intent使用,仅仅用于Activity直接的跳转

  1. Intent intent = new Intent();  
  2. intent.setClass(FileProcessHust.this, MyListActivity.class);  
  3. startActivity(intent);  
2. 复制的Intent使用,能够在Activity之间传递信息
  1. static final int REQUEST_CODE = 1;  
REQUEST_CODE是此次跳转的编号,用于在返回时识别,进行后一步处理。
  1. Intent intent1 = new Intent(ActivityMain.this, Activity1.class);  
  2. intent1.putExtra("activityMain""数据来自activityMain");  
  3. startActivityForResult(intent1, REQUEST_CODE);  
putExtras方法,是将一个数值对放到intent1里,传送此信息给Activity1。

在Activity1里,接受信息,方法如下:

  1. String data=null;  
  2. Bundle extras = getIntent().getExtras();  
  3. if (extras != null) {  
  4.     data = extras.getString("activityMain");  
  5. }  
Activity1在结束时,也可以返回信息给ActivityMain,方法如下:
  1. Bundle bundle = new Bundle();  
  2. bundle.putString("store""数据来自Activity1");  
  3. Intent mIntent = new Intent();  
  4. mIntent.putExtras(bundle);  
  5. setResult(RESULT_OK, mIntent);  
  6. finish();  
ActivityMain中,通过覆盖onActivityResult函数,处理Activity1返回的信息:
  1.    @Override  
  2. protected void onActivityResult(int requestCode, int resultCode, Intent data) {  
  3.     if (requestCode == REQUEST_CODE) {  
  4.         if (resultCode == RESULT_CANCELED)  
  5.             setTitle("取消");  
  6.         else if (resultCode == RESULT_OK) {  
  7.             String temp=null;  
  8.              Bundle extras = data.getExtras();  
  9.                 if (extras != null) {  
  10.                     temp = extras.getString("store");  
  11.                 }  
  12.             setTitle(temp);  
  13.         }  
  14.     }  
  15. }  

相关内容