首页 > 代码库 > Android startActivityForResult的使用

Android startActivityForResult的使用

在Android中startActivityForResult主要作用就是:

A-Activity需要在B-Activtiy中执行一些数据操作,而B-Activity又要将,执行操作数据的结果返回给A-Activtiy


//看效果


//看代码

[java] view plaincopy

<EMBED id=ZeroClipboardMovie_1 name=ZeroClipboardMovie_1 type=application/x-shockwave-flash align=middle pluginspage=http://www.macromedia.com/go/getflashplayer height=18 width=18 src=http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf wmode="transparent" flashvars="id=1&width=18&height=18" allowfullscreen="false" allowscriptaccess="always" bgcolor="#ffffff" quality="best" menu="false" loop="false">

  1. package sn.len.actres;  

  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.Button;  

  9. import android.widget.TextView;  

  10.   

  11. public class ActivityResultDemoActivity extends Activity  

  12. {  

  13.     private Button button_start_task;  

  14.     private TextView TextView_result;  

  15.     @Override  

  16.     public void onCreate(Bundle savedInstanceState)  

  17.     {  

  18.         super.onCreate(savedInstanceState);  

  19.         setContentView(R.layout.main);  

  20.         button_start_task=(Button) findViewById(R.id.button_start_task);  

  21.         TextView_result=(TextView) findViewById(R.id.TextView_result);  

  22.         button_start_task.setOnClickListener(new button_start_task_Listener());  

  23.     }  

  24.     private class button_start_task_Listener implements OnClickListener  

  25.     {  

  26.         public void onClick(View v)  

  27.         {  

  28.             Intent intent=new Intent(ActivityResultDemoActivity.this,SimpleTaskActivity.class);  

  29.             //关键点来了,使用startActivityForResult来启动  

  30.             startActivityForResult(intent, 100);  

  31.         }  

  32.     }  

  33.     /** 

  34.      * 复写onActivityResult,这个方法 

  35.      * 是要等到SimpleTaskActivity点了提交过后才会执行的 

  36.      */  

  37.     @Override  

  38.     protected void onActivityResult(int requestCode, int resultCode, Intent data)  

  39.     {  

  40.         //可以根据多个请求代码来作相应的操作  

  41.         if(20==resultCode)  

  42.         {  

  43.             String bookname=data.getExtras().getString("bookname");  

  44.             String booksale=data.getExtras().getString("booksale");  

  45.             TextView_result.setText("书籍名称:"+bookname+"书籍价钱"+booksale+"元");  

  46.         }  

  47.         super.onActivityResult(requestCode, resultCode, data);  

  48.     }  

  49. }  


//任务处理类

[java] view plaincopy

<EMBED id=ZeroClipboardMovie_2 name=ZeroClipboardMovie_2 type=application/x-shockwave-flash align=middle pluginspage=http://www.macromedia.com/go/getflashplayer height=18 width=18 src=http://static.blog.csdn.net/scripts/ZeroClipboard/ZeroClipboard.swf wmode="transparent" flashvars="id=2&width=18&height=18" allowfullscreen="false" allowscriptaccess="always" bgcolor="#ffffff" quality="best" menu="false" loop="false">

  1. package sn.len.actres;  

  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.Button;  

  9. import android.widget.EditText;  

  10.   

  11. public class SimpleTaskActivity extends Activity  

  12. {  

  13.     private EditText EditText_bookname;  

  14.     private EditText EditText_booksale;  

  15.     private Button Button_task_fulfill;  

  16.   

  17.     @Override  

  18.     protected void onCreate(Bundle savedInstanceState)  

  19.     {  

  20.         super.onCreate(savedInstanceState);  

  21.         setContentView(R.layout.main2);  

  22.           

  23.         EditText_bookname=(EditText) findViewById(R.id.EditText_bookname);  

  24.         EditText_booksale=(EditText) findViewById(R.id.EditText_booksale);  

  25.         Button_task_fulfill=(Button) findViewById(R.id.Button_task_fulfill);  

  26.         Button_task_fulfill.setOnClickListener(new Button_task_fulfill_Listener());  

  27.     }  

  28.     private class Button_task_fulfill_Listener implements OnClickListener  

  29.     {  

  30.         public void onClick(View v)  

  31.         {  

  32.             String str_bookname=EditText_bookname.getText().toString();  

  33.             String str_booksale=EditText_booksale.getText().toString();  

  34.               

  35.             //判断空,我就不判断了。。。。  

  36.             Intent data=http://www.mamicode.com/new Intent();  

  37.             data.putExtra("bookname", str_bookname);  

  38.             data.putExtra("booksale", str_booksale);  

  39.             //请求代码可以自己设置,这里设置成20  

  40.             setResult(20, data);  

  41.             //关闭掉这个Activity  

  42.             finish();  

  43.         }  

  44.     }  

Android startActivityForResult的使用