现在的位置: 首页 > 综合 > 正文

Intent和在Activity之间传递信息

2014年01月17日 ⁄ 综合 ⁄ 共 1351字 ⁄ 字号 评论关闭

 

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.} 

 

抱歉!评论已关闭.