Android startActivityForResult的使用

在Android中startActivityForResult主要作用就是:

A-Activity需要在B-Activtiy中執行一些數據操作,而B-Activity又要將,執行操作數據的結果返回給A-Activtiy


//看效果


//看代碼


[java] view plaincopy

  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

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

  45. }  


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章