`

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

 
阅读更多

启动另一个Activity,并返回一个结果。

使用startActivityForResult()

 


 

 


点击上一步的时候,保存下一步页面输入的用户信息

MainActivity.java

 

package com.amaker.test;

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 MainActivity extends Activity implements OnClickListener {

	private EditText username, password;
	private Button b1;

	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		init();
	}

	private void init() {
		b1 = (Button) findViewById(R.id.Button01);
		b1.setOnClickListener(this);
		username = (EditText) findViewById(R.id.username);
		password = (EditText) findViewById(R.id.password);
	}

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		Bundle b = data.getExtras();
		String str_username = b.getString("username");
		String str_password = b.getString("password");
		username.setText(str_username);
		password.setText(str_password);
	}

	@Override
	public void onClick(View v) {
		switch (v.getId()) {
		case R.id.Button01:

			String str_username = username.getText().toString();
			String str_password = password.getText().toString();

			Bundle b = new Bundle();
			b.putString("username", str_username);
			b.putString("password", str_password);

			Intent intent = new Intent(MainActivity.this, NextActivity.class);
			intent.putExtras(b);

			startActivityForResult(intent, 1);
			break;

		default:
			break;
		}

	}

}

 

 

NextActivity.java

package com.amaker.test;

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 {
	private Button b2;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.next);
		b2 = (Button)findViewById(R.id.Button02);
		b2.setOnClickListener(new OnClickListener() {
			@Override
			public void onClick(View v) {
				Intent intent = getIntent();
				intent.putExtra("abc", "test");
				NextActivity.this.setResult(5, intent);
				NextActivity.this.finish();
			}
		});
		
	}
}

 

  • 大小: 10.1 KB
  • 大小: 6.7 KB
分享到:
评论
1 楼 wade200 2014-04-29  
学习了 

相关推荐

    重温Activity(一)博文对应的源码

    启动模式是另一个重要概念,它决定了Activity的启动行为。Android提供了四种主要的启动模式:标准模式(Standard)、单实例模式(SingleInstance)、单任务模式(SingleTask)和单栈顶模式(SingleTop)。标准模式是...

    activity四大启动方式demo

    "activity四大启动方式demo"指的是展示如何通过四种不同的启动模式来启动一个Activity。这些模式影响着Activity的生命周期以及在任务栈(Task)中的行为。下面将详细解释这四种启动模式及其在实际开发中的应用场景。...

    android ActivityManagerService 源码分析----Activity管理

    这个过程主要通过 resolveIntent() 方法来实现,该方法返回一个 ResolveInfo 对象,该对象包含了要启动的 Activity 信息。在获得 ResolveInfo 对象后,AMS 就可以根据该对象来启动对应的 Activity。 在启动 ...

    Android应用源码之(Activity跳转与操作)-IT计算机-毕业设计.zip

    当使用startActivityForResult()启动Activity时,可以在目标Activity中通过setResult()设置返回结果,然后在调用者Activity的onActivityResult()方法中接收。源码可能展示了如何实现这个功能,以便在子Activity中...

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

    - `startActivityForResult()`:用于启动另一个Activity并等待结果返回,通过`onActivityResult()`处理结果。 7. **回退栈的配置** - 可以通过`android:noHistory="true"`禁止Activity被添加到历史记录栈,这样当...

    Android应用源码之(Activity跳转与操作).zip

    6. **startActivity()和startActivityForResult()**:startActivity()用于无返回值的跳转,而startActivityForResult()则可以在调用者Activity中接收到被启动Activity的结果。 7. **finish()方法**:调用Activity的...

    Android Activity跳转与操作Demo源码.rar

    通过startActivityForResult()启动Activity时,可以在目标Activity中调用setResult()设置返回结果,然后在启动Activity的代码中覆盖onActivityResult()方法,接收并处理返回的结果。 七、Activity的启动模式 ...

    Android Activity设置相同的action进行判断源码.rar

    尽管Activity可以直接处理Intent,但也可以注册BroadcastReceiver监听特定Action的Intent,然后根据Intent的内容决定是否启动Activity或执行其他操作。 通过这个源码,开发者可以深入理解如何在多个Activity间共享...

    Activity滑动返回的Demo

    在该方法内,我们需要计算手指移动的总距离,并设定一个阈值,当滑动距离超过这个阈值时,启动返回动作。同时,还要确保只有在屏幕边缘的滑动才会触发返回,这可以通过比较触摸点相对于屏幕宽度的比例来实现。 以下...

    Android Activity生命周期Demo源码.rar

    - `onPause()`:当另一个Activity将要覆盖当前Activity时,系统会先调用此方法。通常用于保存临时数据、停止动画或更新计时器等。这个过程是短暂的,因为Activity依然部分可见。 4. **停止(Stopping)**: - `...

    应用源码之MyIntentForresult.zip

    当我们需要从一个Activity启动另一个Activity并期待返回结果时,会使用`startActivityForResult()`方法。此方法有两个参数:Intent对象和一个请求码(request code),用于在`onActivityResult()`中区分不同的启动...

    安卓Android源码——(Activity跳转与操作).zip

    2. Intent是Android中启动Activity和Service的主要手段,用于表达一个动作和目标。Intent分为显式Intent和隐式Intent。 - 显式Intent:明确指定要启动的Activity的组件名。 - 隐式Intent:仅指定操作和数据类型,...

    安卓Android源码——模拟Activity进出栈.zip

    使用`startActivityForResult()`启动Activity,可以实现返回结果的通信。当目标Activity完成并返回时,调用`onActivityResult()`方法,传回数据。 7. **应用实践** 在实际开发中,合理设计Activity的启动模式和...

    Activity、Bundle、请求码与结果码、Intent、广播、服务 (二)

    当你在一个Activity中通过startActivityForResult(Intent intent, int requestCode)启动另一个Activity时,可以在第二个Activity中通过setResult(int resultCode, Intent data)设置结果,并返回到第一个Activity。...

    Android应用源码之模拟Activity进出栈.zip

    Intent不仅定义了Activity间的通信,还包含了启动Activity所需的数据。例如,可以使用Intent.FLAG_ACTIVITY_NEW_TASK标志来启动一个新的任务,或者使用FLAG_ACTIVITY_CLEAR_TOP来清除栈中所有位于目标Activity之上的...

    安卓启动退出网络判断相关-Activity启动和退出动画.zip

    在安卓应用开发中,"启动退出网络判断"是一个重要的功能模块,它涉及到用户界面的交互体验和应用程序的网络状态管理。这个压缩包“安卓启动退出网络判断相关-Activity启动和退出动画.zip”包含了关于Activity启动...

    Activity通信源码

    源码中,Intent的创建和解析过程涉及Intent类和ResolveInfo类,而启动Activity的过程则涉及ActivityManagerNative和ActivityStackSupervisor。 2. **Activity与Fragment的通信**: Fragment是可嵌入Activity中的UI...

    安卓Android源码——(Activity跳转与操作).rar

    当你想要从一个Activity跳转到另一个Activity时,你需要创建一个Intent,设置其目标Activity以及可能携带的数据。在源码中,`Intent`类的构造函数和`setAction`, `setClass`, `putExtra`等方法是用来设置Intent属性...

    Android 启动另一个App/apk中的Activity实现代码

    - 使用`startActivityForResult()`启动Activity并接收返回结果 - 理解Android应用程序的进程和组件模型,每个App运行在独立的Dalvik或ART虚拟机中,而Activity作为组件可以被其他应用调用 这些知识点对于Android...

Global site tag (gtag.js) - Google Analytics