Android开发中Intent和startActivityForResult传值

android中使用startActivityForResult回传数据(详解) 在使用新浪微博APP时,能发现在微博发布界面进入图库选择图片后,会回到微博发布页面并带回了图片选择页面的图片信息。由于这种需求十分常见,因此,Android提供了一个startActivityForResult()方法,来实现回传数据。 要求:页面1跳转到页面2,页面2再返回页面1同时返回数据 页面1添加如下代码:  Intent intent = new Intent(); 阅读详情

先看效果:


图一  第一个界面初始效果                                            图二 第二个界面输入值的效果                               图三 关闭第二个界面将结果显示在第一个界面中

第一个Activity实现了页面的跳转及结果的显示

import com.example.zl.R;

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

public class MainActivity extends Activity {

	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.jieshou_main);
	}

	public void button1click(View view){
		Intent intent=new Intent(this,BookActiviey.class);
		this.startActivityForResult(intent, 100);
	}

	@Override
	protected void onActivityResult(int requestCode, int resultCode, Intent data) {
		
		// 接受数据
		String name=data.getStringExtra("bookname");
		String price=data.getStringExtra("price");
		
		//输出到界面
		TextView textview=(TextView)findViewById(R.id.result);
		textview.setText("你输入的书名是:"+name+"\n价格是:"+price);
		
		super.onActivityResult(requestCode, resultCode, data);
	}
	
}

第一个界面实现整体布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <Button
        android:id="@+id/button1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:text="点击买书"
        android:onClick="button1click" />

    <TextView
        android:id="@+id/result"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Large Text"
        android:textAppearance="?android:attr/textAppearanceLarge" />

</LinearLayout>

第二个Activity的代码:


package com.hnjdzy.JieShouPara;

import com.example.zl.R;

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

public class BookActiviey extends Activity {


	
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		// TODO Auto-generated method stub
		super.onCreate(savedInstanceState);
		setContentView(R.layout.jieshou_book);
	}
	
	public void submitclick(View view)
	{
		//从界面上读取信息
		EditText edittext1=(EditText)findViewById(R.id.title);
		String TitleName=edittext1.getText().toString();
		
		EditText edittext2=(EditText)findViewById(R.id.price);
		String Price=edittext2.getText().toString();
		
		//传给调用者
		Intent data=new Intent();
		data.putExtra("bookname", TitleName);
		data.putExtra("price", Price);
		
		this.setResult(20, data);
		
		this.finish();
		
	}

}

第二个界面实现的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >


    <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">




    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="书籍名称:"
        android:textSize="25sp" />
    
        <EditText
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" />
    </LinearLayout>
    
        <LinearLayout 
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">




    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="价格:"
        android:textSize="25sp" />
    
        <EditText
        android:id="@+id/price"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:ems="10" />
    </LinearLayout>


        <Button
            android:id="@+id/submit"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="提交并关闭" 
            android:textSize="25sp"
            android:layout_gravity="center"
            android:onClick="submitclick"/>


</LinearLayout>






        
Android中利用Intent和Bundle传值总结 Android中的Intent机制可以实现组件间的交互,通讯,调用。可以是应用程序之间,也可以是应用程序内部Activity与Service的交互或是发送/接受广播等。当然,这些内容在这篇博客都不会谈到。这篇博客只是对Android中利用Intent和Bundle传值的总结。     一、startActivity() + Intent传值     在MainActivity.java的布 阅读详情

相关推荐

Intent实现页面跳转和传值

Intent称为意图,是Android各大组件连接的桥梁1.Activity页面跳转同一个包内Intent intent = new Intent(); intent.setClass(MainActivity.this, SecondActivity.class); MainActivity.this.startActivity(intent);不同包内(1)明确的IntentIntent i

u012511163的博客 904

android startActivityForResult的使用

今天,简单讲讲android如何使用startActivityForResult在两个activity之间传值。其实也很简单,之前做一个需求时,需要两个activity之间互相传值,首先想到了intent,就可以使用startActivityForResult进行传值。但是很少用到这个函数,发现自己居然不熟悉,所以在网上搜索了资料,最终解决了问题。这里记录一下。其实也可以使用广播进两个activi...

谢岩的博客 7918

深入理解Android中Intent跳转传值的多种方式

本文还有配套的精品资源,点击获取 简介:在Android应用开发中,Intent作为组件间通信的桥梁,不仅启动目标组件,还能传递数据。本文将介绍Intent的显式与隐式类型,并详细阐述如何通过Intent在Activity之间进行数据传递,包括基本数据类型、Bundle、Parcelable接口、Serializable接口以及startActivityForResult(...

weixin_35762258的博客 2069

Activity的数据传递(startActivityForResult , onActivityResult , setResult 的用法)

Activity的数据传递(startActivityForResult , onActivityResult , setResult 的用法)

qq_36570506的博客 1188

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

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

STM32 USB2.0 转 Type-C 接口设计与实现

本文详细介绍了STM32 USB2.0转Type-C接口的设计与实现方案,涵盖硬件电路设计、软件配置及调试技巧。重点解析Type-C接口的CC引脚配置和电源管理,提供设备模式、主机模式及双角色模式的实现方法,帮助开发者解决实际应用中的连接稳定性和ESD防护等问题,提升产品可靠性和兼容性。

blockchain9miner的博客 1020

Android startActivityForResult用法

一、介绍 当我们在第一个Activity打开第二个Activity时,第二个Activity关闭并想返回数据给第一个Activity时,我们就可以使用startActivityForResult进行传值。 用到的几个方法介绍: 1. startActivityForResult(Intent intent, int requestCode) requestCode:如果> =...

JUN_LLLL的博客 2万+

IAR9.20.4安装与注册全攻略:附资源及典型问题解决方案

本文提供IAR9.20.4的详细安装与注册指南,涵盖环境准备、安装步骤、权限设置及注册机使用技巧。针对典型问题如评估版残留、权限不足和杀毒软件拦截等,给出了具体解决方案,帮助用户顺利完成IAR开发环境的搭建与激活。

a2b3c4d5e的博客 296

android中使用startActivityForResult()回传数据

假设:我这里有两个Activity:A和B,从A中向B中传递数据的时候采用的是Bundle封装数据,然后从A中跳转到B中,当B有需求将数据封装起来回传给A并跳转回A。那么A中接收数据时还要先判断Bundle是否为空,因为第一次访问A的时候(即B还没有回传的时候),Bundle是为空的,这样显然是比较麻烦的,不明智的做法。 还好startActivityForResult来做跳转给了我们更好的

Learning by doing 4853

Loupe Browser实战指南:解锁10xGenomics单细胞数据的可视化奥秘

本文提供了Loupe Browser的实战指南,帮助用户无需编程即可探索和可视化10xGenomics单细胞数据。文章详细介绍了从数据导入、界面导航到细胞亚群鉴定、差异基因分析的核心操作流程,并分享了高级技巧与避坑指南,是快速上手这一强大可视化工具的必备参考。

weixin_29313423的博客 206

算法策略 | MACD跨周期短线交易策略开发(股指+商品双版)

量化策略开发,高质量社群,交易思路分享等相关内容

松鼠宽客的博客 2539

Android Intent的使用

转https://www.cnblogs.com/scetopcsa/p/3839691.html 相信对于学习Android的人来说Intent并不陌生,我们最常使用的就是它的跳转Activity和在Activity之间传值的功能。 intent有隐式和显示的区分(此处转载自:http://blog.youkuaiyun.com/hhq163/article/detail...

weixin_30344795的博客 107

Spring AI提示词模板应用

本文介绍了使用SpringAI提示词模板的配置方法,主要步骤包括:1)在JDK17和SpringBoot3.4.4环境下引入spring-ai-alibaba1.0.0.2依赖;2)配置application.yml文件;3)创建测试控制器类处理提示词模板(.st文件);4)通过模板变量动态生成AI回复内容。演示了如何通过@RequestParam设置默认参数,实现无需前端传参即可测试AI回复功能,最终完成了一个SpringAI提示词模板的应用Demo。

wjianwei666的专栏 198

Android中基本Intent传值详解

Android中基本Intent传值详解缘由使用Intent传值在目标Acitivity里取值进阶:使用startAcitivityForResult()获取返回值1. 在A中设置请求:2. 在B中设置要传回的数据:3. 在A中接受从B传回的数据:结尾 缘由 在项目中,需要将一个Activity中设置好的提醒时间返回给上一个页面并显示,因此需要用到Intent传值,而此前我的思路一直停留在:如何在...

weixin_42429923的博客 3496

【纯干货分享】常用高速接口眼图模板合集

文章汇集了常见的高速接口的信号眼图测试模板技术要求,比如,LPDDR5/4、PCIe 5.0/4.0、USB、MIPI等等,方便工程师快速进行查询和使用。

一只豌豆象的博客 3116

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

你所了解的Android开发之Activity的创建跳转及传值是什么?

5 Toast.makeText(MainActivity.this, “点击MyFirstButton”, Toast.LENGTH_LONG).show();6 }7 });经过上面的步骤,点击ShowToast按钮就会提示“点击MyFirstButton”的内容,下方是执行的结果截图:二、Activity间的跳转与传值。

2401_84149733的博客 554

android 蓝牙通讯demo

android 下蓝牙通讯demo,实现了发现蓝牙,使能蓝牙,通过蓝牙发送消息。

Android 组件系列-----Activity的传值和回传值

在这篇随笔里将讲解Activity的传值和回传值。 一、通过startActivity来进行Activity的传值 在Android中,如果我们要通过一个Activity来启动另一个Activity,

kkwant的博客 204

Devexpress16.2.6破解工具

Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具Devexpress16.2.6破解工具

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

你所了解的Android开发之Activity的创建跳转及传值是什么?(1)

Intent intent = new Intent(MainActivity.this, SecondActivity.class); //启动Intent startActivity(intent); } }); (2) 如果MainActivity中的值要传给要跳转过去的SecondActivity,那么就可以通过Intent的对象中的putExtra方法来进行传值。在上面的代码startActivity()方法的上方加上下面这段代码就是给目标Activity传值。data是一个String类型的变量

m0_66264881的博客 521

android 之Activity的五种传值方式 (在从当前Activity跳转到目标Activity时的传值方式)

A.使用intent(意图)传值 MainActivity(源文件): 1.intent.putExtra(key,value):key一般是String,值为 java八大基本数据类型及对应的数组,String及对应的数组, Serializable 及对应的数组等 2.intent.putExtras(bundle); 3.intent.put...

u010227042的博客 1072

安卓开发中,activity跳转方式有哪些,传递参数的方式有哪些?

在安卓开发中,Activity之间的跳转是应用程序中常见的操作,主要有显式跳转和隐式跳转两种方式。同时,在Activity之间跳转时,通常需要传递一些数据,也有多种方法可以实现。

qq_43664361的博客 955

android moudle activity,在Android开发中,如何在依赖的module中调用被依赖module中的Activity...

1.这里有两个module,app依赖orcidcardlibrary,但是我想在orcidcardlibrary的activity里传值传到回到app里的activity而不是返回到其他在orcidcardlibrary的activity。这里是我想传值的代码Intent intent = new Intent("kernal.idcard.ShowResultActivity");int...

weixin_42297439的博客 886

Activity之间进行传值的方式以及Activity的回传值(补充版)

1、使用Intent进行Activity传值 1)使用setClass方法来制定我们要跳转的Activity Intent intent=new Intent(this,SecondActivity.class); intent.putExtra(key,value); startActivity(intent); //或者 Intent intent=new Intent(); intent...

Hunter2916的博客 1339

调用startActivityForResult后,onActivityResult为什么立刻响应

现象 今天在编写代码的时候,涉及到两个Activity通过Intent来传值的问题。具体描述为:activity A调用startActivityForResult()函数启动Activity B,然后B结束时通过setResult()函数将一些值回传给A。笔者过去使用这种方法很多次,屡试不爽。但是,今天居然出现了一个奇怪的现象,即从B跳回A后并没有按照预想的逻辑执行,通过抓L...

weixin_30257433的博客 85

Android基础——Intent

IntentIntent是什么?显式Intent隐式Intent Intent是什么? Intent用于Android程序中各组件(Activity、BroadcastReceive、Service)的交互,并且可以在组件之间传递数据,分为显式Intent和隐式Intent。 显式Intent 通过Intent(Context packageContext, Class<?> cls)构造函数创建Intent实例,第一个参数为当前Context,第二个参数为要启动的目标类。如当需要启动Other

松仔Log的博客 3340
上一篇: Android 让图片横屏显示
下一篇: Android中Intent的应用(一)--多页面间的跳转
softwarelive
博客等级 码龄17年 1粉丝 14原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值