`

关于StartActivityForResult方法的使用

 
阅读更多

根据方法名可知 这个方法是要得到启动后的Activity返回的数据;  如A 启动了 B ; 那么就是得到B中返回的数据;

1:A

package org.zhou.test.start;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class StartActivityForResultActivity extends Activity implements OnClickListener {
   
	private Button start;
	
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        start = (Button)findViewById(R.id.start);
        start.setOnClickListener(this);
    }

	
	public void onClick(View v) {
		if(v == start) {
			Intent intent = new Intent();
			intent.putExtra("key", "Say Hello");
			intent.setClass(StartActivityForResultActivity.this, NextActivity.class);
			startActivityForResult(intent,123211);
		}
	}
	
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		// TODO Auto-generated method stub
		super.onActivityResult(requestCode, resultCode, data);
		
		//接收返回来的数据
		if(resultCode == 34901) {
			Log.i("Infos", "request:"+requestCode);
			Log.i("Infos", "value:"+data.getStringExtra("key"));
		}
	}
}

 2:  B

package org.zhou.test.start;

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;

public class NextActivity extends Activity implements OnClickListener {
	
	private Button next;
	
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.next);
		
		next = (Button)findViewById(R.id.next);
		next.setOnClickListener(this);
	}

	@Override
	public void onClick(View v) {
		if(next == v) {
			Intent intent = new Intent();
			intent.putExtra("key", "values This is good");
			intent.setClass(NextActivity.this, StartActivityForResultActivity.class);
			this.setResult(34901, intent);
			finish();
		}
	}
}

 

这里的requestCode就是前面的123211   而resultCode就是34901   这样就可以达到接收唯一的指定的数据了

分享到:
评论

相关推荐

    简化 startActivityForResult 的使用1

    传统的使用方式是定义 requestCode,然后调用 startActivityForResult 方法,最后重写 Activity 或者 Fragment 的 onActivityResult 方法来处理结果。但是,这种方法存在一些问题。当 requestCode 比较多的时候,...

    关于Activity与Fragment混用中对于startActivityForResult方法的解析示例

    以上就是关于Activity与Fragment混用中使用`startActivityForResult()`方法的解析。通过理解这个过程,开发者能够更好地管理应用程序的流程,提高用户体验。在实际的项目开发中,这样的交互方式是非常常见的,因此...

    Android之Intent通过startActivityForResult方法启动新Activity

    在Android应用开发中,`startActivityForResult()`是一个常用且重要的功能,熟练掌握其使用能有效提高用户体验和应用的可维护性。在实际项目中,结合具体的业务场景灵活运用,可以使应用的交互更加顺畅。

    StartActivityForResult

    在Android应用开发中,`StartActivityForResult`是一个关键的组件交互方法,用于在一个Activity(活动)启动另一个Activity并期望得到返回结果。这个方法允许开发者在应用程序的不同组件之间传递数据,通常用于实现...

    startActivityForResult的详细用法

    在Android应用开发中,`startActivityForResult`是一个非常重要的方法,它允许我们在启动一个Activity时传递数据,并在那个Activity执行完后返回结果到调用它的Activity。这个过程涉及到Intent、生命周期管理和数据...

    startActivityForResult使用方式

    在Android应用开发中,`startActivityForResult()`是一个关键的方法,用于在不同的Activity之间进行数据交互。这个方法允许一个Activity启动另一个Activity,并等待返回的结果。在本篇中,我们将深入探讨`...

    startActivityForResult intent 跳转相关的

    在Android应用开发中,`startActivityForResult()`是一个关键方法,用于在不同的Activity之间进行交互,尤其是在需要从一个Activity获取返回结果时。这个方法允许我们启动一个新的Activity,并在它完成之后得到回调...

    startActivityForResult Demo

    这篇博客“startActivityForResult Demo”可能详细介绍了如何使用这个方法以及相关的实践案例。 `startActivityForResult`的工作原理是这样的:当一个Activity(我们称为启动Activity)调用`startActivityForResult...

    【android】的startActivityForResult

    在Android应用开发中,`startActivityForResult`是一个关键方法,用于在两个Activity之间进行交互,尤其是在需要从一个Activity启动另一个Activity并期待返回结果时。这个方法允许开发者在启动新的Activity时传递...

    startActivityForResult你所不知道的---Fragment

    然而,尽管`Activity`中的`startActivityForResult()`方法被广泛使用,但`Fragment`中的相应功能`startActivityForResult()`却常常被开发者忽视。这个方法在处理`Fragment`与`Activity`之间的交互,特别是数据返回时...

    Android-一种startActivityForResult更简单流程

    在Android应用开发中,`startActivityForResult()`是一个关键方法,用于在不同的Activity之间进行通信,尤其是在需要从一个Activity返回结果到另一个Activity时。这个方法使得开发者可以启动一个新的Activity,并...

    Android-StartActivityForResultHelper一个轻巧的用于解耦startActivityForResult方法的库

    然而,随着应用程序复杂性的增加,`startActivityForResult()`的使用往往会导致代码的耦合度增加,不易于管理和维护。为了解决这个问题,开发者社区创建了"Android-StartActivityForResultHelper",这是一个轻量级的...

    startActivityForResult+onActivityResult+setResult

    3个方法的介绍和使用 startActivityForResult(Intent intent, int requestCode ) onActivityResult(int requestCode ,int resultCode, Intent data) setResult(int resultCode,intent intent)

    Android-基于RxPermissions框架思想在使用startActivityForResult可以不重写onActivityResult回调

    这需要我们使用`Intent.createObservable()`方法,结合`subscribeOn`和`observeOn`来指定线程行为。例如: ```java Observable<Result> resultObservable = Intent.createObservable(context, new Func1, Result>()...

    StartActivityForResult小例子

    下面将详细阐述`StartActivityForResult`的工作原理、使用步骤以及一些注意事项。 ### 1. 工作原理 `StartActivityForResult`的工作流程如下: 1. 主Activity(启动者)调用`startActivityForResult`方法,传入被...

    startActivityForResult用法详解

    在Android应用开发中,`startActivityForResult`是一个关键的方法,用于启动一个新的Activity并期待返回一个结果。这个方法常用于在不同Activity之间进行数据交互,比如获取用户的选择、处理权限请求等。在这个场景...

    android开发教程之startActivityForResult使用方法

    以下是对`startActivityForResult()` 使用方法的详细说明: 1. **启动Activity并等待结果:** 当我们使用`startActivityForResult(Intent intent, int requestCode)` 启动一个新的Activity时,`intent` 参数是一个...

    startActivityForResult_demo

    下面将详细介绍`startActivityForResult`的工作原理和使用方法。 一、`startActivityForResult`的基本用法 1. 启动新活动:调用`startActivityForResult(Intent intent, int requestCode)`,其中`intent`参数是一...

    android startActivityForResult的使用方法介绍

    接下来,我们将详细讨论`startActivityForResult()`的使用方法。 ### 1. 方法签名 `startActivityForResult()` 的方法签名如下: ```java public void startActivityForResult(Intent intent, int requestCode) ```...

Global site tag (gtag.js) - Google Analytics