Android startActivityForResult的使用

Android startActivityForResult的使用

androidbuttonstringclass任务

在Android中startActivityForResult主要作用就是:

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

//看效果

//看代码

[java] view plaincopyprint?

  1. package sn.len.actres;
  2. import android.app.Activity;
  3. import android.content.Intent;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.view.View.OnClickListener;
  7. import android.widget.Button;
  8. import android.widget.TextView;
  9. public class ActivityResultDemoActivity extends Activity
  10. {
  11. private Button button_start_task;
  12. private TextView TextView_result;
  13. @Override
  14. public void onCreate(Bundle savedInstanceState)
  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(new button_start_task_Listener());
  21. }
  22. private class button_start_task_Listener implements OnClickListener
  23. {
  24. public void onClick(View v)
  25. {
  26. Intent intent=new Intent(ActivityResultDemoActivity.this,SimpleTaskActivity.class);
  27. //关键点来了,使用startActivityForResult来启动
  28. startActivityForResult(intent, 100);
  29. }
  30. }
  31. /**
  32. * 复写onActivityResult,这个方法
  33. * 是要等到SimpleTaskActivity点了提交过后才会执行的
  34. */
  35. @Override
  36. protected void onActivityResult(int requestCode, int resultCode, Intent data)
  37. {
  38. //可以根据多个请求代码来作相应的操作
  39. if(20==resultCode)
  40. {
  41. String bookname=data.getExtras().getString("bookname");
  42. String booksale=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);
	}
}

//任务处理类

[java] view plaincopyprint?

  1. package sn.len.actres;
  2. import android.app.Activity;
  3. import android.content.Intent;
  4. import android.os.Bundle;
  5. import android.view.View;
  6. import android.view.View.OnClickListener;
  7. import android.widget.Button;
  8. import android.widget.EditText;
  9. public class SimpleTaskActivity extends Activity
  10. {
  11. private EditText EditText_bookname;
  12. private EditText EditText_booksale;
  13. private Button Button_task_fulfill;
  14. @Override
  15. protected void onCreate(Bundle savedInstanceState)
  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(new Button_task_fulfill_Listener());
  23. }
  24. private class Button_task_fulfill_Listener implements OnClickListener
  25. {
  26. public void onClick(View v)
  27. {
  28. String str_bookname=EditText_bookname.getText().toString();
  29. String str_booksale=EditText_booksale.getText().toString();
  30. //判断空,我就不判断了。。。。
  31. Intent data=new Intent();
  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. }
时间: 2024-10-29 19:10:35

Android startActivityForResult的使用的相关文章

Android -- startActivityForResult和setResult

startActivityForResult与startActivity的不同之处 startActivity( ) 仅仅是跳转到目标页面,若是想跳回当前页面,则必须再使用一次startActivity( ). startActivityForResult( ) 可以一次性完成这项任务,当程序执行到这段代码的时候,假若从T1Activity跳转到下一个Text2Activity,而当这个Text2Activity调用了finish()方法以后,程序会自动跳转回T1Activity,并调用前一个T

android startActivityForResult()

举例说我想要做的一个事情是,在一个主界面(主Activity)上能连接往许多不同子功能模块(子Activity上去),当子模块的事情做完之后就回到主界面,或许还同时返回一些子模块完成的数据交给主Activity处理. 目的: A.java 是主界面,B.java 是子功能模块,要从A启动B,B干完活之后把结果汇报给A 先看 A.java 的相关代码 //-- A.java --// /* * 要做两件事情,第一是用 startActivityForResult() 启动B,其次是回收B的结果 *

Android startActivityForResult requestCode限制

requestCode的值必须小于2^16,否则会报如下错误: java.lang.IllegalArgumentException: Can only use lower 16 bits for requestCode

Android的startActivityForResult不起作用

之前startActivityForResult一直用的好好的,今天发现怎么也不起作用.检查后发现有两点影响了. 1.android:launchMode="singleTask",main里设成单例了: 2.startActivityForResult的requestcode须要大于0才干够.

startActivityForResult的用法(Android)

1.第一个页面的activity.java package cn.buaa.z1; import android.content.Intent; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.EditText; public class MainActivity extends AppCompatA

简化Android的startActivityForResult调用

一个是解决在onActivityResult 中判断requestCode的问题,第二个是让调用代码的地方就知道我是如何处理对方activity的返回的. 首先我们有一个ResultActivityAdaptor,这个就封装了我的主要的逻辑 public class ResultActivityAdaptor { /** * 起始requestCode,用于兼容有一些老的逻辑,不让request code冲突 */ private final static int REQUEST_CODE_ST

android Intent的startActivityForResult()方法

startActivityForResult() 之前学习了利用Intent跳转页面的同时传值,但有的时候需要从跳转到的页面返回所需要的值(如修改了用户信息,需要返回修改的信息),通俗的意思就是A.Activity跳转到B.Activity,在A.Activity中要自动获取到B.Activity返回的数据. 1.介绍几个主要的方法: 1 MainActivity.this.startActivityForResult(intent1, 1); 第一个参数intent1就不介绍了,第二个参数的值

Android四大组件之——Activity的开启:StartActivity()和StartActivityForResult()(图文详解)

            如需转载请在文章开头处注明本博客网址:http://www.cnblogs.com/JohnTsai       联系方式:[email protected]       [Android四大组件学习系列Activity篇]        1.Android四大组件之——Activity(一)定义.状态和后退栈(图文详解) 2.Android四大组件之——Activity的生命周期(图文详解) 3.Android四大组件之——Activity的开启StartActivit

Android的startActivityForResult()与onActivityResult()与setResult()参数分析,activity带参数的返回

一.使用场景 在一个主界面(主Activity)通过意图跳转至多个不同子Activity上去,当子模块的代码执行完毕后再次返回主页面,将子activity中得到的数据显示在主界面/完成的数据交给主Activity处理.这种带数据的意图跳转需要使用activity的onActivityResult()方法. (1)startActivityForResult(Intent intent, int requestCode);  第一个参数:一个Intent对象,用于携带将跳转至下一个界面中使用的数据