`

activity传送给一个activity并把结果回传

 
阅读更多

现在有一个activity1调用另一个activity2,调用activity2后,在把值传给activity1

 

    activity1:

 

public class IntentActivity extends Activity {
    private Button btn=null;
    private final static int REQUEST_CODE=1;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        btn=(Button)findViewById(R.id.btn1);
        btn.setOnClickListener(listener);
    }
    private OnClickListener listener=new OnClickListener() {
		
		@Override
		public void onClick(View v) {
//			Intent intent=new Intent();
//			intent.setAction(Intent.ACTION_SENDTO);
//			intent.setData(Uri.parse("smsto:5554"));
//			intent.putExtra("sms_body", "welcome to ....");
//			startActivity(intent);
			Intent intent=new Intent();
			intent.setClass(IntentActivity.this, second.class);
			intent.putExtra("str", "second demo");
			//startActivity(intent);
			startActivityForResult(intent, REQUEST_CODE);
			
		}
	};
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		if(requestCode==REQUEST_CODE){
// if(resultCode==send.RESULT_OK){....}
			switch (resultCode) { 
		case second.RESULT_OK:
			Bundle b=data.getExtras();  
			String str=b.getString("str1");
                      break;
		}	
		super.onActivityResult(requestCode, resultCode, data);
	}	
}

 

activity2:

 

  public class second extends Activity {

	private TextView secondTxt;
	private Button btn;
    final static int RESULT_CODE=1;

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
        setContentView(R.layout.second);
        Intent intent=getIntent();
        Bundle bundle=intent.getExtras();
        String str =bundle.getString("str");
        secondTxt=(TextView)findViewById(R.id.sencondTv1);
        secondTxt.setText(str);
        
        btn=(Button)findViewById(R.id.btnSecond);
        btn.setOnClickListener(listener);

	}
	private OnClickListener listener=new OnClickListener() {
		
		@Override
		public void onClick(View v) {
		 Intent intent=new Intent();
		 intent.putExtra("back", "back data");
		 setResult(RESULT_CODE,intent);
		 finish();
			
		}
	};
}

     有几个值得注意的地方:

  1. activity相互传递是Intent

 

  2. Bundle接受Intent 中putExtra进去的参数

 

  3. startActivityForResult(intent, REQUEST_CODE);中的REQUEST_CODE必须大于或等于0才会调用继承activity的 onActivityResult方法,不然会调用startActivityFromChild(要重写)方法

 

 

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

 

 requestCode就是REQUEST_CODE的值(必须大于或等于0)

 

 resultCode是activity2中RESULT_CODE(测试貌似-1都可以)的值

 

  Intent data是activity2传过来的值,用Bundle接受处理

 

 

 

 

 

分享到:
评论

相关推荐

    android Activity之间数据的回传

    特别是当我们需要从一个Activity跳转到另一个Activity,并希望在完成某些操作后能够将数据回传给原始Activity时,就需要使用特定的技术来实现这一功能。本文将详细介绍如何使用`startActivityForResult()`来实现在...

    安卓开发-Activity间数据传递和回传

    这里的`requestCode`是一个整数值,用于标识此次启动Activity的目的或类型,这对于后续的结果处理非常重要。 #### Activity间数据回传 完成数据传递后,我们还需要考虑如何将B处理后的结果数据返回给A。这主要...

    Activity回传值

    在Android中,当你启动一个新的`Activity`并希望在用户完成某些操作后得到结果,就需要使用`startActivityForResult()`方法而不是普通的`startActivity()`. 这个方法允许你在启动`Activity`时设置一个请求码,当目标...

    在一个Activity中更新操作另一个Activity的内容

    如果两个Activity共享同一个Handler,那么一个Activity可以通过发送消息给Handler,由Handler在正确的线程(通常是主线程)中执行更新UI的操作,从而达到间接修改另一个Activity内容的目的。但是,这种做法并不常见...

    activity之间传送图片

    本篇文章将详细介绍如何在Android的两个Activity之间有效地传送图片,并在另一个Activity中独立显示。 首先,理解Android中的Intent机制是关键。Intent主要用于启动一个新的Activity或者服务,同时也可作为数据载体...

    Android开发 猴子摘桃小项目——学习Activity之间的数据回传

    5. **Result Code**: 在子Activity中,我们可以通过setResult()方法设置一个结果码,这个码可以是自定义的,用于表明子Activity的执行状态,如成功、取消等。配合请求码,可以区分不同来源的返回数据。 6. **Bundle...

    启动另一个Activity并返回结果(附源码)

    在Android应用开发中,启动另一个Activity并返回结果是常见的操作,通常用于实现用户交互或数据交换。例如,从一个Activity启动相机应用拍摄照片后,我们需要获取拍摄的照片并显示在当前Activity上。这个过程就涉及...

    Android四大组件——Activity(一)Activity之间通信及其生命周期变化

    例如,在一个选择图片的应用场景中,一个Activity启动了图片选择器,选择完成后,选择器Activity通过setResult()将选中的图片信息传回,源Activity则在onActivityResult()中接收到这个信息并进行后续处理。...

    activity值传递

    当需要从第二个Activity返回结果到第一个Activity时,可以使用startActivityForResult()方法启动第二个Activity,并在第二个Activity中调用setResult()方法设置结果,最后在第一个Activity的onActivityResult()方法...

    Activity传递数据到另一个Activity并显示

    在数据传递中,`Intent`主要用来创建一个从一个`Activity`到另一个`Activity`的通道。 ```java // 创建一个新的Intent Intent intent = new Intent(currentActivity, TargetActivity.class); ``` ### 2. 通过`...

    android多个activity和一个service通信

    2. **Binder**: Service通过实现IBinder接口,提供一个 Binder 对象给Activity绑定。Activity通过bindService()方法获取到Binder对象,从而可以直接调用Service的方法。这种方式效率较高,但需要编写较多代码,并且...

    ActivityGroup应用-如何把一个Activity加载成一个视图

    在Android开发中,ActivityGroup是一种老式的容器组件,它允许开发者在一个Activity中嵌套其他Activity作为子视图。然而,自Android 3.0(API级别11)开始,这个功能已被Fragment替代,因此现在使用ActivityGroup并...

    Android父Activity获取子Activity返回信息demo

    现在,当你在父Activity中通过Intent启动子Activity,并指定一个请求码,如: ```java Intent intent = new Intent(this, ChildActivity.class); startActivityForResult(intent, MY_REQUEST_CODE); ``` 这样,当...

    activity与activity利用接口相互传递数据

    这个接口通常包含一个或多个方法,这些方法用于接收并处理来自目标Activity(接收者)的数据。接口定义如下: ```java public interface DataCallback { void onDataReceived(Object data); } ``` 然后,在源...

    从一个activity跳到fragment,再从fragment跳到activity

    本文将深入探讨如何实现从一个Activity跳转到Fragment,以及如何从Fragment返回到另一个Activity。 首先,我们来看如何从一个Activity启动Fragment。在Android中,Fragment不能直接启动,它必须嵌套在Activity中。...

    android一个应用的acitvity调用另一个应用的activity

    有时,我们可能需要在一个应用(应用A)中启动另一个应用(应用B)的Activity,这通常涉及到跨应用通信。本教程将深入讲解如何实现这个功能,并提供一个简单的示例。 首先,要从一个应用启动另一个应用的Activity,...

    重建Activity-Recreating an Activity

    在Android开发中,Activity是应用组件的一种,它提供了一个屏幕,用户可以在其中进行交互。Activity的生命周期是管理Activity状态的一系列方法,确保在不同情况下能正确地保存和恢复用户的进度。在Activity生命周期...

    Android 中从activity1跳转到activity2再回到activity所经历的生命周期

    本文将详细解析从一个Activity(Activity1)跳转到另一个Activity(Activity2),然后再返回到原Activity(Activity1)时,这两个Activity分别会经历哪些生命周期方法。 #### Activity1的生命周期变化 1. **...

    动态设置启动的第一个activity

    在Android应用开发中,"动态设置启动的第一个Activity"是一个高级且实用的技术,它允许开发者根据特定条件或用户需求在运行时动态地改变应用程序的入口点。通常,AndroidManifest.xml文件中定义了应用的启动Activity...

    Android 一次启动多个Activity (TaskStackBuilder)

    一个任务是一个可以包含多个Activity的容器,它们按照添加的顺序形成一个回退栈。用户可以通过按设备上的返回键从栈顶Activity回退到栈中的前一个Activity,直到任务被清空或者用户手动关闭应用。 TaskStackBuilder...

Global site tag (gtag.js) - Google Analytics