在Android中,如果想要启动一个activity,可以用startActivity,或者是startActivityForResult(intent, GET_CODE)

如果是想要得到新的activity回传的数据的话,必须使用第二个方法startActivityForResult(intent, GET_CODE);

并且在原来的activity中覆写onActivityResult(int requestCode, int resultCode,Intent data)来对获取的数据进行处理

 

例如在原来的activity中有如下的代码对接受到的数据进行处理

 

[java] 
 1 /** 
 2 * 该方法是回调方法,当startActivityForResult启动的activity结束后 
 3 * 
 4 * @param requestCode 传递给startActivity()的请求码 
 5 * @param resultCode 从启动的activity中,在setResult()设置的一个结果码,一般用来标识处理的结果 
 6 * @param data 用来接受传递过来的数据 
 7 */
 8 @Override
 9 protectedvoid onActivityResult(int requestCode, int resultCode, 
10 Intent data) { 
11 if (requestCode == GET_CODE) { 
12 Editable text = (Editable)mResults.getText(); 
13 if (resultCode == RESULT_CANCELED) { 
14 text.append("(cancelled)"); 
15 // Our protocol with the sending activity is that it will send 
16 // text in 'data' as its result. 
17 } else { 
18 text.append("(okay "); 
19 text.append(Integer.toString(resultCode)); 
20 text.append(") "); 
21 if (data != null) { 
22 text.append(data.getAction()); 
23 } 
24 } 
25 text.append("\n"); 
26 } 
27 } 

 

 

在开启新的activity的时候,有下面的程序

 

[java]
1 //开启一个activity,并且想得到返回数据. 会连同GET_CODE一起返回 
2 Intent intent = new Intent(ReceiveResult.this, SendResult.class); 
3 startActivityForResult(intent, GET_CODE); 
4             //开启一个activity,并且想得到返回数据.  会连同GET_CODE一起返回
5             Intent intent = new Intent(ReceiveResult.this, SendResult.class);
6             startActivityForResult(intent, GET_CODE);

 


在新的activity中有如下的程序

[java]

1 setResult(RESULT_OK, (new Intent()).setAction("Corky!")); 
2 finish(); 
3             setResult(RESULT_OK, (new Intent()).setAction("Corky!"));
4             finish();

 

posted on 2012-10-05 23:39  承志软件.张  阅读(179)  评论(0)    收藏  举报