Android startActivityForResult的使用

本文介绍如何在Android应用的不同组件间通过startActivityForResult进行数据传递。具体包括:从一个Activity启动另一个Activity进行特定操作,并将结果带回;实现这一过程的代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Android startActivityForResult的使用

在Android中startActivityForResult主要作用就是:

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


//看效果


//看代码

  1. packagesn.len.actres;
  2. importandroid.app.Activity;
  3. importandroid.content.Intent;
  4. importandroid.os.Bundle;
  5. importandroid.view.View;
  6. importandroid.view.View.OnClickListener;
  7. importandroid.widget.Button;
  8. importandroid.widget.TextView;
  9. publicclassActivityResultDemoActivityextendsActivity
  10. {
  11. privateButtonbutton_start_task;
  12. privateTextViewTextView_result;
  13. @Override
  14. publicvoidonCreate(BundlesavedInstanceState)
  15. {
  16. super.onCreate(savedInstanceState);
  17. setContentView(R.layout.main);
  18. button_start_task=(Button)findViewById(R.id.button_start_task);
  19. TextView_result=(TextView)findViewById(R.id.TextView_result);
  20. button_start_task.setOnClickListener(newbutton_start_task_Listener());
  21. }
  22. privateclassbutton_start_task_ListenerimplementsOnClickListener
  23. {
  24. publicvoidonClick(Viewv)
  25. {
  26. Intentintent=newIntent(ActivityResultDemoActivity.this,SimpleTaskActivity.class);
  27. //关键点来了,使用startActivityForResult来启动
  28. startActivityForResult(intent,100);
  29. }
  30. }
  31. /**
  32. *复写onActivityResult,这个方法
  33. *是要等到SimpleTaskActivity点了提交过后才会执行的
  34. */
  35. @Override
  36. protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata)
  37. {
  38. //可以根据多个请求代码来作相应的操作
  39. if(20==resultCode)
  40. {
  41. Stringbookname=data.getExtras().getString("bookname");
  42. Stringbooksale=data.getExtras().getString("booksale");
  43. TextView_result.setText("书籍名称:"+bookname+"书籍价钱"+booksale+"元");
  44. }
  45. super.onActivityResult(requestCode,resultCode,data);
  46. }
  47. }
package sn.len.actres; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class ActivityResultDemoActivity extends Activity { private Button button_start_task; private TextView TextView_result; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button_start_task=(Button) findViewById(R.id.button_start_task); TextView_result=(TextView) findViewById(R.id.TextView_result); button_start_task.setOnClickListener(new button_start_task_Listener()); } private class button_start_task_Listener implements OnClickListener { public void onClick(View v) { Intent intent=new Intent(ActivityResultDemoActivity.this,SimpleTaskActivity.class); //关键点来了,使用startActivityForResult来启动 startActivityForResult(intent, 100); } } /** * 复写onActivityResult,这个方法 * 是要等到SimpleTaskActivity点了提交过后才会执行的 */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { //可以根据多个请求代码来作相应的操作 if(20==resultCode) { String bookname=data.getExtras().getString("bookname"); String booksale=data.getExtras().getString("booksale"); TextView_result.setText("书籍名称:"+bookname+"书籍价钱"+booksale+"元"); } super.onActivityResult(requestCode, resultCode, data); } }
//任务处理类

  1. packagesn.len.actres;
  2. importandroid.app.Activity;
  3. importandroid.content.Intent;
  4. importandroid.os.Bundle;
  5. importandroid.view.View;
  6. importandroid.view.View.OnClickListener;
  7. importandroid.widget.Button;
  8. importandroid.widget.EditText;
  9. publicclassSimpleTaskActivityextendsActivity
  10. {
  11. privateEditTextEditText_bookname;
  12. privateEditTextEditText_booksale;
  13. privateButtonButton_task_fulfill;
  14. @Override
  15. protectedvoidonCreate(BundlesavedInstanceState)
  16. {
  17. super.onCreate(savedInstanceState);
  18. setContentView(R.layout.main2);
  19. EditText_bookname=(EditText)findViewById(R.id.EditText_bookname);
  20. EditText_booksale=(EditText)findViewById(R.id.EditText_booksale);
  21. Button_task_fulfill=(Button)findViewById(R.id.Button_task_fulfill);
  22. Button_task_fulfill.setOnClickListener(newButton_task_fulfill_Listener());
  23. }
  24. privateclassButton_task_fulfill_ListenerimplementsOnClickListener
  25. {
  26. publicvoidonClick(Viewv)
  27. {
  28. Stringstr_bookname=EditText_bookname.getText().toString();
  29. Stringstr_booksale=EditText_booksale.getText().toString();
  30. //判断空,我就不判断了。。。。
  31. Intentdata=newIntent();
  32. data.putExtra("bookname",str_bookname);
  33. data.putExtra("booksale",str_booksale);
  34. //请求代码可以自己设置,这里设置成20
  35. setResult(20,data);
  36. //关闭掉这个Activity
  37. finish();
  38. }
  39. }
  40. }
package sn.len.actres; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class SimpleTaskActivity extends Activity { private EditText EditText_bookname; private EditText EditText_booksale; private Button Button_task_fulfill; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main2); EditText_bookname=(EditText) findViewById(R.id.EditText_bookname); EditText_booksale=(EditText) findViewById(R.id.EditText_booksale); Button_task_fulfill=(Button) findViewById(R.id.Button_task_fulfill); Button_task_fulfill.setOnClickListener(new Button_task_fulfill_Listener()); } private class Button_task_fulfill_Listener implements OnClickListener { public void onClick(View v) { String str_bookname=EditText_bookname.getText().toString(); String str_booksale=EditText_booksale.getText().toString(); //判断空,我就不判断了。。。。 Intent data=new Intent(); data.putExtra("bookname", str_bookname); data.putExtra("booksale", str_booksale); //请求代码可以自己设置,这里设置成20 setResult(20, data); //关闭掉这个Activity finish(); } } }

在Android中startActivityForResult主要作用就是:

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


//看效果


//看代码

  1. packagesn.len.actres;
  2. importandroid.app.Activity;
  3. importandroid.content.Intent;
  4. importandroid.os.Bundle;
  5. importandroid.view.View;
  6. importandroid.view.View.OnClickListener;
  7. importandroid.widget.Button;
  8. importandroid.widget.TextView;
  9. publicclassActivityResultDemoActivityextendsActivity
  10. {
  11. privateButtonbutton_start_task;
  12. privateTextViewTextView_result;
  13. @Override
  14. publicvoidonCreate(BundlesavedInstanceState)
  15. {
  16. super.onCreate(savedInstanceState);
  17. setContentView(R.layout.main);
  18. button_start_task=(Button)findViewById(R.id.button_start_task);
  19. TextView_result=(TextView)findViewById(R.id.TextView_result);
  20. button_start_task.setOnClickListener(newbutton_start_task_Listener());
  21. }
  22. privateclassbutton_start_task_ListenerimplementsOnClickListener
  23. {
  24. publicvoidonClick(Viewv)
  25. {
  26. Intentintent=newIntent(ActivityResultDemoActivity.this,SimpleTaskActivity.class);
  27. //关键点来了,使用startActivityForResult来启动
  28. startActivityForResult(intent,100);
  29. }
  30. }
  31. /**
  32. *复写onActivityResult,这个方法
  33. *是要等到SimpleTaskActivity点了提交过后才会执行的
  34. */
  35. @Override
  36. protectedvoidonActivityResult(intrequestCode,intresultCode,Intentdata)
  37. {
  38. //可以根据多个请求代码来作相应的操作
  39. if(20==resultCode)
  40. {
  41. Stringbookname=data.getExtras().getString("bookname");
  42. Stringbooksale=data.getExtras().getString("booksale");
  43. TextView_result.setText("书籍名称:"+bookname+"书籍价钱"+booksale+"元");
  44. }
  45. super.onActivityResult(requestCode,resultCode,data);
  46. }
  47. }
package sn.len.actres; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.TextView; public class ActivityResultDemoActivity extends Activity { private Button button_start_task; private TextView TextView_result; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); button_start_task=(Button) findViewById(R.id.button_start_task); TextView_result=(TextView) findViewById(R.id.TextView_result); button_start_task.setOnClickListener(new button_start_task_Listener()); } private class button_start_task_Listener implements OnClickListener { public void onClick(View v) { Intent intent=new Intent(ActivityResultDemoActivity.this,SimpleTaskActivity.class); //关键点来了,使用startActivityForResult来启动 startActivityForResult(intent, 100); } } /** * 复写onActivityResult,这个方法 * 是要等到SimpleTaskActivity点了提交过后才会执行的 */ @Override protected void onActivityResult(int requestCode, int resultCode, Intent data) { //可以根据多个请求代码来作相应的操作 if(20==resultCode) { String bookname=data.getExtras().getString("bookname"); String booksale=data.getExtras().getString("booksale"); TextView_result.setText("书籍名称:"+bookname+"书籍价钱"+booksale+"元"); } super.onActivityResult(requestCode, resultCode, data); } }
//任务处理类

  1. packagesn.len.actres;
  2. importandroid.app.Activity;
  3. importandroid.content.Intent;
  4. importandroid.os.Bundle;
  5. importandroid.view.View;
  6. importandroid.view.View.OnClickListener;
  7. importandroid.widget.Button;
  8. importandroid.widget.EditText;
  9. publicclassSimpleTaskActivityextendsActivity
  10. {
  11. privateEditTextEditText_bookname;
  12. privateEditTextEditText_booksale;
  13. privateButtonButton_task_fulfill;
  14. @Override
  15. protectedvoidonCreate(BundlesavedInstanceState)
  16. {
  17. super.onCreate(savedInstanceState);
  18. setContentView(R.layout.main2);
  19. EditText_bookname=(EditText)findViewById(R.id.EditText_bookname);
  20. EditText_booksale=(EditText)findViewById(R.id.EditText_booksale);
  21. Button_task_fulfill=(Button)findViewById(R.id.Button_task_fulfill);
  22. Button_task_fulfill.setOnClickListener(newButton_task_fulfill_Listener());
  23. }
  24. privateclassButton_task_fulfill_ListenerimplementsOnClickListener
  25. {
  26. publicvoidonClick(Viewv)
  27. {
  28. Stringstr_bookname=EditText_bookname.getText().toString();
  29. Stringstr_booksale=EditText_booksale.getText().toString();
  30. //判断空,我就不判断了。。。。
  31. Intentdata=newIntent();
  32. data.putExtra("bookname",str_bookname);
  33. data.putExtra("booksale",str_booksale);
  34. //请求代码可以自己设置,这里设置成20
  35. setResult(20,data);
  36. //关闭掉这个Activity
  37. finish();
  38. }
  39. }
  40. }
package sn.len.actres; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; public class SimpleTaskActivity extends Activity { private EditText EditText_bookname; private EditText EditText_booksale; private Button Button_task_fulfill; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main2); EditText_bookname=(EditText) findViewById(R.id.EditText_bookname); EditText_booksale=(EditText) findViewById(R.id.EditText_booksale); Button_task_fulfill=(Button) findViewById(R.id.Button_task_fulfill); Button_task_fulfill.setOnClickListener(new Button_task_fulfill_Listener()); } private class Button_task_fulfill_Listener implements OnClickListener { public void onClick(View v) { String str_bookname=EditText_bookname.getText().toString(); String str_booksale=EditText_booksale.getText().toString(); //判断空,我就不判断了。。。。 Intent data=new Intent(); data.putExtra("bookname", str_bookname); data.putExtra("booksale", str_booksale); //请求代码可以自己设置,这里设置成20 setResult(20, data); //关闭掉这个Activity finish(); } } }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值