(Android基础)Intent意图实现携带数据跳转和回传

安卓跳转页面携带参数,返回页面携带参数 1 阅读详情

在Activity之间跳转可以使用Intent这个桥梁

ps : 菜鸟教程总结

实例:

实现页面1点击按钮跳转到界面2选择图片后跳转回页面1 并显示

首先创建布局文件:activity_my.xml 界面1

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical">
    <TextView
        android:text="选择你喜欢的APP图标"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <ImageView
        android:id="@+id/imgicon"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
    <Button
        android:id="@+id/btnchoose"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="选择图标"/>
</LinearLayout>

在创建选择图片的界面2:activity_my_activity2.xml

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <GridView
        android:id="@+id/gridicon"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="10px"
        android:horizontalSpacing="20px"
        android:verticalSpacing="10px"
        android:numColumns="4">
    </GridView>
</RelativeLayout>

接下来编辑第一个Activity逻辑

public class MyActivity extends Activity {
    private Button btnchoose;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my);
        //初始化选择按钮
        btnchoose = (Button)findViewById(R.id.btnchoose);
        btnchoose.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //从MyActivity跳转到MyActivity2
                Intent it = new Intent(MyActivity.this,MyActivity2.class);
                //取回结果  请求码
                startActivityForResult(it,0x123);
            }
        });
    }
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        //判断请求码跟结果响应请求码是否为指定的数值
        if(requestCode == 0x123 && resultCode == 0x123)
        {
            //根据Intent意图  获取Bundle对象  再根据对象取出图片编号
            Bundle bd = data.getExtras();
            int imgid = bd.getInt("imgid",0);
            if (imgid!=0){
                //获取布局文件中的ImageView组件,设置路径属性
                ImageView img = (ImageView)findViewById(R.id.imgicon);
                img.setImageResource(imgid);
            }
        }
    }
}

继承Activity 类 重写onCreate方法 ,同时重写onAcitvityResult方法,这个方法用来接受返回的Intent意图以及携带的数据
判断跳转过去的请求码以及结果响应码是否指定的数据,然后获取数据 进行渲染
值得注意的是:取回的数据可能为空,会导致空指针异常,所以可以加一个默认值0 , 也就是得不到数据后返回默认值,再加个判断就可以避免;

第二个Activity类:MyActivity2 :

public class MyActivity2 extends Activity {
    //定义图片
    public int[] imgs = new int[]
            {
                R.drawable.icon2, R.drawable.icon2,R.drawable.icon3,R.drawable.icon4,
                R.drawable.icon5,R.drawable.icon6,R.drawable.icon7,R.drawable.icon8,
                R.drawable.icon9,R.drawable.icon10
            };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_my_activity2);
        GridView gd = (GridView)findViewById(R.id.gridicon);
        //创建BaseAdapter适配器
        BaseAdapter baseAdapter = new BaseAdapter() {

            //获得数量
            @Override
            public int getCount() {
                return imgs.length;
            }
            //获得当前选项
            @Override
            public Object getItem(int position) {
                return position;
            }
            //获得当前选项对应的id
            @Override
            public long getItemId(int position) {
                return position;
            }
            @Override
            public View getView(int position, View convertView, ViewGroup parent) {
                ImageView imageView;
                if(convertView == null)
                {
                    imageView = new ImageView(MyActivity2.this);
                    //设置图片宽高
                    imageView.setAdjustViewBounds(true);
                    imageView.setMaxHeight(111);
                    imageView.setMaxWidth(111);
                    imageView.setPadding(5,5,5,5);
                }
                else  imageView = (ImageView)convertView;

                imageView.setImageResource(imgs[position]);
                return imageView;

            }
        };
        //设置适配器
        gd.setAdapter(baseAdapter);
        //监听视图组
        gd.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                //获取意图
                Intent it = getIntent();
                //创建Bundle对象,存储数据
                Bundle bd = new Bundle();
                bd.putInt("imgid",imgs[position]);
                //将bd对象存到intent并返回给打开他的Activity
                it.putExtras(bd);
                //设置相应结果码
                setResult(0x123,it);
                //最后一定要关闭当前的Activity
                finish();
            }
        });
    }
}

定义图片资源,初始化布局文件,添加适配器,添加事件监听器,然后返回被点击的数据,
值得注意 : 返回数据后一定要结束当前的Acitvity,即finish();

利用kettle进行数据库数据比对 Kettle是一款国外开源的ETL工具,纯java编写,可以在Windows、Linux、Unix上运行,数据抽取高效稳定。本人用的版本是6.1。 之前用kettle这个开源的ETL工具是用来做数据抽取的,这次测试有个需求,是做数据库数据的比对。验证源表到目标表的逻辑正确,从而利用源表自己写SQL逻辑,生成的结果和目标表去比对。这次想到了利用kettle的数据比较功能,来做这些数据校验。 ... 阅读详情

相关推荐

LC与RC滤波电路实战对比:从原理到选型指南

本文深入对比了LC与RC滤波电路的核心原理与实战应用。LC滤波利用电感与电容的无损能量搬运,适合高频、大电流电源滤波,效率高但需注意谐振风险;RC滤波通过电阻消耗能量实现滤波,结构简单、成本低,适用于低频信号处理或小电流供电场景。文章提供了从工作原理、性能维度到具体选型的完整指南,帮助工程师根据项目需求(如频率范围、负载电流、效率)做出精准选择。

weixin_29240711的博客 499

转载--Android 开发 调用图库选择图片实现和参数详解

原帖地址:Android 开发 调用图库选择图片实现和参数详解 我在网上看到摩讯的分享SDK,然后下载来看看,不过里面缺少了选择图库的功能,于是乎没事就加上 调用图库选择本地图片的功能, 大家有对摩讯有兴趣的话可以去下载来看看   摩讯分享SDK     摩讯社区SDK   先上实现代码: ”分享本地图片“按钮事件: [java]   //选择图片,调用图库   bt4.s

707

实战指南!基于STM32的智能环境监测系统(附完整代码+硬件设计+云端对接)

本文提供了一份基于STM32的智能环境监测系统完整实战指南。详细讲解了从硬件选型、电路设计、传感器驱动到数据采集、本地报警逻辑,以及通过ESP8266模块对接OneNET物联网平台实现数据上云的全过程。项目涵盖嵌入式开发与物联网应用核心技能,并提供了多种手机端数据展示方案,非常适合课程设计或毕业设计参考。

weixin_29193359的博客 352

Android多媒体功能开发(4)——调用系统Activity拍照、选择图片、查看图片、裁剪图片

拍照界面就是调用系统照相机,动作为MediaStore.ACTION_IMAGE_CAPTURE。选择图片界面采用通用的文档选择动作Intent.ACTION_GET_CONTENT,只选择图片文件只需将类型设置为image/*。查看图片采用通用的文件查看动作Intent.ACTION_VIEW,将类型设置为image/*,并将要查看的图片文件以uri格式放入Data中。裁剪图片的界面通过动作“com.android.camera.action.CROP”调用。

nanoage的博客 2953

华硕ROG幻16笔记本电脑模式切换管理工具完美替代华硕奥创中心管理工具

参考文档1这个工具可以完美替代华硕奥创中心工具,可以定制化不同模式下的CPU、GPU、风扇转速、电池计划等。是由华硕开发人员开发的一个纯绿色的系统管理工具。直接展示启动后的工具界面效果图:这个工具也可以一键式停止正在运行的华硕ASUS服务,减少不必要的资源消耗。

追梦&天空的博客 1万+

手把手教你为Multisim 14.0创建自定义元件:以SPICE模型导入为例

本文详细介绍了如何在Multisim 14.0中创建自定义元件,重点讲解了SPICE模型的导入与应用。通过系统性的步骤指南,包括元件符号设计、引脚定义、SPICE模型关联及验证测试,帮助工程师高效扩展元件库,满足特定设计需求。文章还提供了故障排除和性能优化的实用技巧,确保自定义元件在实际仿真中的可靠性。

weixin_42531163的博客 284

Intent跳转及传值

Intent的作用 : 启动Activity 通过Context.startActvity() / Activity.startActivityForResult()启动一个Activity; 启动Service 通过Context.startService()启动一个服务,或者通过Context.bindService()和后台服务交互; 发送Broadcast 通过广播方法Context.sendBroadcasts() / Context.sendOrderedBroadcast() /

qq_44844314的博客 461

RK平台内核“大瘦身”:从4GB到500MB的蜕变之旅

摘要:本文详细介绍了RK平台内核裁剪的完整流程与技术要点。通过对RK3568/RK3588等SoC平台的分析,探讨了从初始4GB内核精简至500MB的具体方法。文章系统阐述了前期硬件环境搭建、软件工具准备、SDK源码获取等准备工作,深入解析了内核模块组成及可裁剪部分,并提供了图形化配置界面的详细操作指南。同时,对编译烧录过程和常见问题解决方案进行了说明,强调了备份和谨慎选择裁剪项的重要性。最后展望了内核裁剪技术在物联网和边缘计算等领域的应用前景,为开发者提供了实用的内核优化参考方案。(148字)

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 443

Android数据传递方法汇总

android传递数据方式

qq_40336964的博客 371

AutoSAR系列讲解(入门篇)4.6-BSW的Watchdog功能

BSW的看门狗功能

雪云飞星的博客 1万+

【ChatGPT】实用 Prompt 指令大全 —— 一文教你如何更好地挖掘 GPT 的价值

ChatGPT 是由 OpenAI 开发的一种先进的大型语言生成模型,能够理解和生成准确、自然且连贯的文本。文本生成数据分析内容审核语义理解自然语言推理以及其他众多任务ChatGPT是一种基于GPT-3.5架构的大型语言模型,由OpenAI公司开发。该模型在自然语言处理领域有着广泛的应用,可以用于文本生成、文本分类、情感分析、问答系统等任务。本文将从模型的架构、训练方式、优缺点等方面对ChatGPT进行详细介绍。一、模型架构。

AI天才研究院 2万+

Android实现页面带参数跳转回传

1.创建2个空白的Activity 放置Button和EditText控件 2.

weixin_43689040的博客 4100

从零到精通:BLDC电机驱动电路详解与设计思路

这套电机驱动电路从核心控制器到反馈采集模块,涉及了BLDC电机驱动的方方面面。每一个模块的设计和选择都需要综合考虑系统需求和实际使用环境。在实际应用中,很多细微的设计改进都会显著影响电机的运行性能。

weixin_43199439的博客 3101

安卓Activity之间的数据传递四种方法,以及数据回传的实现

显式Intent来跳转页面和传递数据: Intent intent=new Intent(MainActivity.this,ReceiverActivity.class); intent.putExtra("显式数据","显示意图Intent传送数据"); startActivity(intent); 接受数据时: TextView txtshow=(TextView)findViewById(R.id.txtShow); Intent intent =getIntent();

qq_43540629的博客 4820

Devexpress16.2.6破解工具

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

最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版

Part-E1-SDIO-Specification-Ver4.00-Final-120220.pdf:最新的sdio 4.0 spec 协议标准 带书签 高清完整PDF版,包括SDIO 接口的外设,SDIO 接口官方协议等。

Android意图Intent总结(隐式意图,显示意图,意图数据传递,意图数据回传)

一:隐式意图和显示意图概念 备注: 1. Intent 和 Intent 过滤器。 二:隐式意图和显示意图代码实例 1:显示意图:指定要启动的应用组件 ①:从当前类MainActivity.class跳转到SecondActivity.class中去 当前活动窗体:activity_main.xml===>对应MainActivity类 要跳转活动窗体:activity_second...

孤夜的博客 1468

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

安卓——Intent(实现页面跳转的两种方法)

下图中两个不同的方法就是两种页面之间跳转的情况1&gt;跳转不返回数据2&gt;跳转返回数据实例:第一种启动方式(跳转不返回数据)第二种启动方式(跳转返回数据)先看第一种:点击第一种启动方式按钮会出现右边的图,然后再点击Button按钮返回左边的界面,TextView中的内容没变。再看第二种启动方式不同的是,点击Button按钮返回左边的界面,TextView中的内容变成了你好。下面是所有代码An...

weixin_38199770的博客 7万+

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Android Intent实现页面跳转

什么是Intent Intent可以理解为信使(意图) 由Intent来协作完成Android各个组件之间的通讯, 也可以说是实现页面与页面之间的跳转 Intent实现页面之间的跳转 startActivity(intent)//第一种方式启动 startActivityForResult(intent, requestCode); //第二...

weixin_34242819的博客 1117

Android Studio(意图Intent)

Android Studio意图intent,页面跳转,传递多类型数据,意图回传

m0_60633107的博客 480

android intent方法,Android Intent实现页面跳转的两种方法

本文实例为大家分享了Intent实现页面跳转的两种的方法,供大家参考,具体内容如下下图中两个不同的方法就是两种页面之间跳转的情况1).跳转不返回数据2).跳转返回数据实例:第一种启动方式(跳转不返回数据)第二种启动方式(跳转返回数据)先看第一种:点击第一种启动方式按钮会出现右边的图,然后再点击Button按钮返回左边的界面,TextView中的内容没变。再看第二种启动方式不同的是,点击Button...

weixin_32581787的博客 880

android intent跳转页面,Android Intent实现页面跳转

什么是IntentIntent可以理解为信使(意图)由Intent来协作完成Android各个组件之间的通讯, 也可以说是实现页面与页面之间的跳转Intent实现页面之间的跳转startActivity(intent)//第一种方式启动startActivityForResult(intent, requestCode); //第二种启动方式onActivityResult(int...

weixin_39942995的博客 911

android利用intent实现跳转,Android使用Intent实现页面跳转

什么是intentintent可以理解为信使(意图)由intent来协助完成android各个组件之间的通讯intent实现页面之间的跳转1>startactivity(intent)2>startactivityforresult(intent,requestcode)onactivityresult(int requestcode,int resultcode,intent dat...

weixin_30249151的博客 946

Android Studio基础项目-两个Activity的Intent跳转与传值,并onActivityResult回传一个/多个值,与回传消息内容。

Android Studio基础项目-两个Activity的Intent跳转与传值,并onActivityResult回传一个值。 内容如图: 代码接该章节:https://blog.youkuaiyun.com/xwbk12/article/details/116561412?spm=1001.2014.3001.5501 第一步:在MainActivty.java 第二步:重新方法 第三步:打印回传数据值信息 MainActivty.java的代码内容: package com.xw

xwbk12的博客 1873

Activity跳转和Intent传值

多个Activity之间的调用 Intent显式调用 Intent隐式调用 使用Intent在Activity之间传递数据 直接使用Intent传递数据 使用Bundle传递数据 回传数据

简单点的博客 3416

Activity之间的跳转与数据传递

1.Activity之间的跳转 使用Intent(意图) 显式意图可以直接通过名称开启指定的目标组件 隐式意图通过指定action和category等属性,系统根据这些信息进行分析后寻找目标Activity 显式意图 Intent intent = new Intent(MainActivity.this,LayoutActivity.class); /*参数1:上下文 参数2:要跳转的类cl...

YYxiaobao0726的博客 1750

android三个页面跳转intent,Android使用Intent实现页面跳转

什么是IntentIntent可以理解为信使(意图)由Intent来协助完成Android各个组件之间的通讯Intent实现页面之间的跳转1>startActivity(intent)2>startActivityForResult(intent,requestCode)onActivityResult(int requestCode,int resultCode,Intent dat...

weixin_33334565的博客 935
上一篇: (android基础) RecyclerView使用
下一篇: (Andorid基础)通过内部存储保存数据于文件案例
皮皮大虾
博客等级 码龄7年 6粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值