startActivityForResult(Itent intent, int requestCode)用来唤起一个Activity。利用这个方法,前一个Activity1便会有一个等待次Activity2的返回,返回时响应onActivityResult(int requestCode, int resultCode, Intent data)方法。
Demo如下:
第一个activity
package com.kevin.intent;
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 Main extends Activity implements OnClickListener{
private Button btn_transfer;
private EditText et_name;
private int requestCode = 1;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn_transfer = (Button) findViewById(R.id.button1);
et_name = (EditText) findViewById(R.id.editText1);
btn_transfer.setOnClickListener(this);
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
System.out.println("requestCode--->" + requestCode);
// resultCode是第二个Activity返回过来的值
switch (resultCode) {
case RESULT_OK:
// 获取Bundle对象
Bundle returnedBundle = data.getExtras();
String returnedName = returnedBundle.getString("name");
et_name.setText(returnedName);
break;
default:
break;
}
}
@Override
public void onClick(View v) {
// 取得et_name的值
String name = et_name.getText().toString();
Bundle bundle = new Bundle();
bundle.putString("name", name);
Intent intent = new Intent();
intent.setClass(this, Activity_1.class);
intent.putExtras(bundle);
// 启动Activity_1
startActivityForResult(intent, requestCode);
}
}
跳转后的activity
package com.kevin.intent;
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 Activity_1 extends Activity implements OnClickListener{
private Button btn_return;
private TextView textView;
private Intent intent;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity1);
intent = this.getIntent();
Bundle bundle = intent.getExtras();
String name = bundle.getString("name");
System.out.println("name --- >" + name);
textView = (TextView) findViewById(R.id.tv_receivedname);
textView.setText("传过来的name值为: " + name);
btn_return = (Button) findViewById(R.id.btn_return);
btn_return.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// 点击返回按钮后,设置返回值
setResult(RESULT_OK, intent);
this.finish();
}
}
分享到:
相关推荐
在Android应用开发中,`startActivityForResult`是一个关键的API,用于从一个活动(Activity)启动另一个活动,并期望在新活动执行完毕后返回结果。这个方法使得不同活动间的交互变得可能,尤其在需要用户进行一些...
在Android应用开发中,`startActivityForResult()`是一个关键的方法,用于在不同的Activity之间进行数据交互。这个方法允许一个Activity启动另一个Activity,并等待返回的结果。在本篇中,我们将深入探讨`...
这个"直接调用系统摄像头的一个拍照demo"提供了一个自定义拍照界面的实例,它可以帮助开发者了解如何在自己的应用程序中实现这一功能。下面我们将详细讲解相关的知识点。 首先,我们要知道在Android中,调用系统...
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE); } } ``` `createImageFile()`方法是创建照片文件的,通常在应用的私有目录下,如sdcard/Android/data/com.example.app/files/。别忘了在...
当用户选择答案并提交后,应用会通过startActivityForResult()启动一个新的Activity来展示结果或下一个问题。 2. **数据存储**: 答题数据通常存储在SQLite数据库中,每个问题对应一条记录,包括题目、正确答案和...
这通常会调用ZXing的IntentIntegrator类,通过startActivityForResult()方法启动扫描。 5. **处理扫描结果**:当扫描完成,ZXing会回调onActivityResult()方法,开发者需要在这个方法中解析返回的数据,展示扫描...
startActivityForResult(enableBtIntent, REQUEST_ENABLE_BT); } ``` 当需要搜索附近的蓝牙设备时,可以调用`startDiscovery()`方法: ```java adapter.startDiscovery(); ``` 同时,为了监听蓝牙设备发现的结果...
这个"Android选择照片或拍照后裁剪图片Demo"就是一个很好的实例,它展示了如何实现这样的功能。这个Demo包含了工具类以及用于显示圆形头像的组件,使得用户体验更加美观和专业。 首先,我们要理解Android中的图片...
本Demo "Android图片选择、文件选择的Demo" 提供了一个基础的实现,供开发者学习和参考。下面我们将深入探讨这些知识点。 首先,**图片选择** 在Android中通常涉及到访问设备的图库。Android提供了`Intent.ACTION_...
本示例"Android拍照、相册选取、截图综合Demo"旨在提供一个全面的解决方案,帮助开发者处理这些功能,并解决由Bitmap对象可能导致的内存溢出问题。以下是关于这个Demo的详细知识点: 1. **相机拍照**: - Android...
通常会创建一个`ACTION_IMAGE_CAPTURE`的`Intent`,然后通过`startActivityForResult()`启动相机应用。拍摄完成后,系统会返回捕获的图片的URI,开发者可以进一步处理这个URI,例如裁剪图片或直接上传。 2. **...
2. **启动系统相机**:可以通过Intent来启动系统相机,使用`Intent.ACTION_IMAGE_CAPTURE`并调用`startActivityForResult()`方法,以便在用户拍摄照片后能接收结果。 3. **处理拍照结果**:在`onActivityResult()`...
本示例“Android图片裁剪demo”专注于提供一个实现方形和非方形裁剪功能的解决方案。下面我们将深入探讨这个话题。 首先,Android中的图片裁剪通常涉及到两个关键组件:`Intent`和`Bitmap`。`Intent`用于启动系统...
本篇将详细探讨如何实现“Android笔记之图片自由裁剪DEMO”,并结合提供的`ImageCutDemo`来深入理解相关知识点。 1. **Intent选择图片** Android系统提供了Intent机制,用于启动系统服务或与其他应用程序进行交互...
在"Activity堆栈管理demo"的源码分析中,开发者可能会详细讲解如何利用Android的IntentFlags和startActivityForResult()方法来控制Activity的启动模式和堆栈行为。此外,还可能介绍如何创建自定义的工具类,以便更...
Android拍照Demo,主要代码:imageUri = Uri.fromFile(outputImage); Intent intent = new Intent("android.media.action.IMAGE_CAPTURE"); intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); ...
- Android:创建一个拍照意图,设置ACTION为`MediaStore.ACTION_IMAGE_CAPTURE`,然后startActivityForResult启动相机应用。用户拍摄后,系统会返回一个包含拍摄图片的URI。 2. **从相册选择功能**: - iOS:同样...
这通常通过`startActivityForResult()`来实现,以便于后续接收支付结果。 4. **处理支付回调**: - 当用户完成支付后,支付宝会回调到我们指定的`Activity`,这里通常是实现了`OnActivityResult()`的Activity。在...
2. 启动授权页面:通过`startActivityForResult()`启动授权页面,监听授权结果。 3. 处理授权结果:在`onActivityResult()`方法中,根据返回的ResultCode判断授权是否成功,然后可以通过`OAuth2AccessToken`对象获取...