`

Android 数据传递-从Activity中返回数据

 
阅读更多
Ø在实际的应用中,我们不仅仅要向Activity传递数据,而且要从Activity中返回数据,虽然返回数据和传递数据类似,也可以采用前面4种方法,但是一般建议采用Intent对象的方式来返回数据,使用这种方式返回数据,需要使用startActivityForResult方法来显示Activity
 

 

Ø案例一
 
package com.android.myintent;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class Main extends Activity {
	/** Called when the activity is first created. */
	private Button button;
	private final static int REQUESTCODE = 1;//返回的结果码
    private EditText one,two,result;
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		button = (Button) this.findViewById(R.id.button);
		one = (EditText)this.findViewById(R.id.one);
		two = (EditText)this.findViewById(R.id.two);
		result = (EditText)this.findViewById(R.id.result);
		button.setOnClickListener(new View.OnClickListener() {
        
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
				int a = Integer.parseInt(one.getText().toString());
				int b = Integer.parseInt(two.getText().toString());
				Intent intent = new Intent(Main.this, OtherActivity.class);
				intent.putExtra("a", a);
				intent.putExtra("b", b);
				//启动Intent
				startActivityForResult(intent, REQUESTCODE);// 表示可以返回结果
			}
		});
	}
	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		// TODO Auto-generated method stub
		super.onActivityResult(requestCode, resultCode, data);
		if(resultCode==2){
			if(requestCode==REQUESTCODE){
				int three = data.getIntExtra("three", 0);
				result.setText(String.valueOf(three));
			}
		}
	}
}
 
 
package com.android.myintent;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class OtherActivity extends Activity {

	private Button button;
	private TextView textView;
	private EditText editText;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.other);
		button = (Button)this.findViewById(R.id.button2);
		textView = (TextView)this.findViewById(R.id.msg);
		editText = (EditText)this.findViewById(R.id.three);
		Intent intent = getIntent();
		int a = intent.getIntExtra("a", 0);
		int b = intent.getIntExtra("b", 0);
		textView.setText(a+" + "+b+" = "+" ? ");
		button.setOnClickListener(new View.OnClickListener() {
			@Override
			public void onClick(View v) {
				// TODO Auto-generated method stub
			   Intent intent = new Intent();
			   int three = Integer.parseInt(editText.getText().toString());
			   intent.putExtra("three", three);
			   //通过Intent对象返回结果,setResult方法,
			   setResult(2, intent);
			   finish();//结束当前的Activity的生命周期。
			}
		});
	}
}
 
分享到:
评论

相关推荐

    Android 从Activity中返回数据

    在实际的应用中,我们不仅仅要向Activity传递数据,而且要从Activity中返回数据,虽然返回数据和传递数据类似,也可以采用前面4种方法,但是一般建议采用Intent对象的方式来返回数据,使用这种方式返回数据,需要...

    android Activity之间的数据传递

    总的来说,Android Activity之间的数据传递是一个广泛而重要的主题,涉及多种方式和策略。开发者应根据具体需求选择合适的方法,确保数据安全、高效地在Activity间流动。在实际开发中,理解并熟练掌握这些技术将有助...

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

    下面将详细介绍如何在Android中实现父Activity获取子Activity返回的信息。 首先,我们创建一个子Activity。在这个子Activity中,用户可能会进行一些交互,例如选择数据、填写表单等。完成这些操作后,子Activity...

    Android-Service与Activity传值

    本篇文章将详细讲解如何实现`Service`到`Activity`的数据传递。 1. **创建Service** 首先,我们需要创建一个`Service`。在Android Studio中,可以通过新建一个类并继承自`Service`。例如,我们可以创建一个名为`...

    Android高级应用源码-模拟Activity进出栈.rar

    - 通过Intent传递数据:启动Activity时,可以在Intent中添加额外的数据,被启动的Activity可以通过`getIntent()`获取。 - `startActivityForResult()`:用于启动另一个Activity并等待结果返回,通过`...

    android-start-activity.7z

    3. **传递数据**: 在Intent中,可以通过`putExtra()`方法传递额外的数据给目标Activity。例如: ```java intent.putExtra("key", "value"); ``` 目标Activity可以通过`getIntent().getStringExtra("key")`来获取...

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

    在安卓应用开发过程中,经常需要在多个`Activity`之间进行数据传递。这种交互对于实现复杂的应用逻辑至关重要,例如用户登录验证、表单填写等场景。本文将详细介绍如何在两个`Activity`(假定为A和B)之间传递数据...

    Android例子源码Activity间的数据传递

    6. **startActivityForResult()**: 当需要从目标Activity返回数据时,可以使用startActivityForResult()。在目标Activity完成时,可以通过setResult()设置结果,然后在调用者Activity的onActivityResult()方法中处理...

    实现androidActivity的跳转,数据返回,传数据

    在Android旧版本中,我们通常使用`startActivityForResult()`启动Activity,并在重写`onActivityResult()`方法中处理返回数据: ```java startActivityForResult(intent, REQUEST_CODE); ``` 在目标Activity中: ...

    service之service传递数据给Activity

    另一种方式是通过BroadcastReceiver进行数据传递。Service可以发送Broadcast,Activity注册接收这个Broadcast,从而获取数据。Service中发送广播: ```java Intent intent = new Intent("com.example.MY_ACTION"); ...

    Android之Activity的生命周期和Activity间的跳转和数据传递)

    ### Android之Activity的生命周期与Activity间的跳转及数据传递 #### Activity的概念与作用 在Android应用开发中,`Activity`是四大组件之一,主要负责管理应用程序的用户界面(UI)。一个Activity代表一个屏幕上的...

    Android应用开发-系统Activity的调用.pptx

    Intent允许开发者在运行时连接不同的组件,如Activity和Service,实现程序间的跳转和数据传递。本篇主要探讨Intent的使用、属性以及IntentFilter。 首先,Intent初识。Intent不仅仅是一个简单的消息对象,它更是一...

    Android activity间的数据传递,选择头像

    当我们需要在不同的Activity之间传递数据时,比如用户选择头像的操作,就需要掌握Activity间的数据传递技术。本文将深入探讨如何在Android中实现这一功能。 首先,我们要知道在Android中,有多种方式可以在Activity...

    Android学习笔记-Activity篇

    2. 启动带有返回结果的Activity:若需从目标Activity返回结果,可以在启动时添加`startActivityForResult()`,并在目标Activity中使用`setResult()`设置返回值,最后调用`finish()`结束Activity。 四、关闭Activity...

    Android 从Activity中往ViewPager里的fragment传递数据

    以上就是Android从Activity向ViewPager中的Fragment传递数据的完整过程和相关知识点,实践中可以根据项目需求选择合适的方法进行数据传递。在开发过程中,理解并熟练掌握这些技巧对于提升用户体验和代码质量至关重要...

    Android-Android界面跳转传递参数封装

    - 创建一个BaseActivity作为所有Activity的基类,可以统一处理参数传递逻辑,如在`onCreate(Bundle savedInstanceState)`中自动从Intent获取并设置数据。 - 基类中可以定义`protected void setExtras(Bundle ...

    Activity review activity之间的数据传递

    当需要从启动的Activity返回数据时,可以使用`startActivityForResult()`方法。在接收Activity中,我们可以通过`setResult()`设置结果,然后在原始Activity中覆盖`onActivityResult()`方法来接收返回的数据。 四、...

    android handle线程数据传递 源代码

    本文将深入探讨Android多线程中的数据传递以及如何通过Handle实现UI更新。 首先,我们了解下Android线程的基本概念。Android应用主要运行在主线程,也称为UI线程,负责处理用户交互和更新UI。由于主线程不允许执行...

    Android笔记(3)---Activity和Intent

    例如,当启动一个新的Activity时,可以通过Intent传递数据,如通过putExtra()方法添加键值对,然后在目标Activity中通过getExtras()获取这些数据。此外,Intent还能携带额外的信息,如请求码(requestCode),用于在...

    Activity之间的简单数据传递

    当需要从目标Activity返回结果到启动Activity时,可以使用`startActivityForResult()`。在目标Activity完成操作后,调用`setResult()`设置结果,然后使用`finish()`关闭Activity。 1. 启动带结果的Activity:`...

Global site tag (gtag.js) - Google Analytics