startActivityForResult的使用

startActivityForResult用法详解 一、如果想在Activity中得到新打开Activity 关闭后返回的数据,需要使用系统提供的startActivityForResult(Intent intent, int requestCode)方法打开新的Activity,新的Activity 关闭后会向前面的Activity传回数据,为了得到传回的数据,必须在前面的Activity中重写onActivityResult(int requestCode, int resultCode, Intent data)方法。 package com.l. 阅读详情

1.需求

1.1 从MainActivity启动T2Activity,并希望T2Activity为MainActivity返回数据,而不需要再一次使用startActivity()

2.实现

….在这个例子里面,在T2Activity中点击按钮调用finish都会回到MainActivity,但是通过startActivity启动的并不会返回数据,回到MainActivity只是因为T2Activity被销毁了。而通过startActivityForResult有返回数据

2.1MainActivity.java

package com.example.lab8;

import android.os.Bundle;

import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

public class MainActivity extends Activity {
    TextView showResultFormT2;
    Button startBtn;
    Button waitBtn;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        getWidget();
        addListener();

    }
    //获得组件
    protected void getWidget() {
        this.showResultFormT2 = (TextView)findViewById(R.id.text);
        this.startBtn = (Button)findViewById(R.id.start_btn);
        this.waitBtn = (Button)findViewById(R.id.wait_btn);
    }
    //为组件添加监听事件
    protected void addListener() {
        startBtn.setOnClickListener(startT2);
        waitBtn.setOnClickListener(startT2ForReslut);

    }

    //startActivity启动()
    public Button.OnClickListener startT2 = new  Button.OnClickListener(){

        @Override
        public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this,T2Activity.class);
            MainActivity.this.startActivity(intent);    
        }

    };

    //startActivityForResult启动()
    public Button.OnClickListener startT2ForReslut = new  Button.OnClickListener(){

        @Override
        public void onClick(View v) {

            Intent intent = new Intent(MainActivity.this,T2Activity.class);
            int requestCode = 110;
        //这里注意使用MainActivity.this.startActivityForResult()而不是直接startActivityForResult(),因为在这里this = view  下面也一样
        MainActivity.this.startActivityForResult(intent, requestCode);

        }

    };

    //接受返回的结果
    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) 
    {
        switch (resultCode) {
        case RESULT_OK:
            String result = data.getStringExtra("mes");
            showResultFormT2.setText(result);
            break;

        default:
            break;
        }
    };


    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

2.2T2Activity.java

package com.example.lab8;

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.Toast;

public class T2Activity extends Activity {
    EditText edit;
    Button finish;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        this.setContentView(R.layout.t2activity_layout);
        edit = (EditText)findViewById(R.id.edit);
        finish = (Button)findViewById(R.id.finish);
        finish.setOnClickListener(finishT2);


    }

    public Button.OnClickListener finishT2 = new Button.OnClickListener()
            {
                @Override
                public void onClick(View v) {
                    String result = edit.getText().toString();
                    if((result.trim()).equals(""))
                        Toast.makeText(T2Activity.this, "请先输入" ,Toast.LENGTH_LONG).show();
                    else
                    {
                        Intent intent = new Intent();
                        intent.putExtra("mes", result);
                        T2Activity.this.setResult(RESULT_OK,intent);
                        T2Activity.this.finish();   
                    }
                };
            };

}

    //几个Activity中内置的resultCode 自定义时不要冲突
    /** Standard activity result: operation canceled. */
    public static final int RESULT_CANCELED    = 0;
    /** Standard activity result: operation succeeded. */
    public static final int RESULT_OK           = -1;
    /** Start of user-defined activity results. */
    public static final int RESULT_FIRST_USER   = 1;
掌握Android Activity交互:使用StartActivityForResult 方法允许你启动一个新的 Activity,并期望从该 Activity 获取返回结果。当目标 Activity 结束时,系统会调用当前 Activity 的回调方法,携带返回结果。请求码(Request Code)是Android开发中用于标识不同Activity间通信的一个整数值。它起到一个类似于”标签”的作用,使得发起请求的Activity能够区分返回结果的来源。 阅读详情

相关推荐

LVGL v9的lv_scale控件实战:5分钟打造动态仪表盘(附完整代码)

本文详细介绍了LVGL v9中lv_scale控件的实战应用,通过5个关键步骤快速打造动态仪表盘。文章涵盖核心特性解析、代码实现、样式定制及性能优化,适用于工业HMI、智能家居等场景,并附完整代码示例。

gin88的博客 262

startActivityForResult详解

众所周知,startActivity是进行Activity之间的跳转,然后我在书上看到还有一个方法startActivityForResult.看了书上的解释,感觉不是很理解,于是自己试了这个方法. Activity1.java mBtn1.setOnClickListener(new View.OnClickListener() { @Override ...

没事学点AI小知识 8020

金蝶ERP元数据解析:字段属性与表结构映射实战

本文深入解析金蝶ERP元数据的核心价值与应用实践,详细介绍了字段属性与表结构映射的关键技术。通过缓存获取与工具类直连两种方案对比,结合实际案例展示元数据在数据库校验、动态表单生成等场景的应用,帮助开发者高效解决二次开发中的常见问题。

weixin_33738555的博客 435

Activity中startForResult的原理分析

本文会介绍以下内容: 1.startActivityForResult简单实用; 2.startActivityForResult的实现原理; 3.startActivityForResult的一些扩展性问题。

分享+记录 2787

AXI backpressure反压机制代码

本文将xilinx的axi读写代码进行修改,实现吞吐量达到50%

m0_64636251的博客 1767

图解基站机房:AAU、RRU与BBU之间的线缆连接与规格选择

本文以图解方式详解了5G基站机房中AAU、RRU与BBU三大核心设备之间的线缆连接方案与规格选择。重点阐述了电力线(如2×10 mm²直流电缆)、数据光缆(如野战光缆与波分复用)及射频馈线的功能、选型标准与实战布线法则,为通信工程部署与维护提供清晰指导。

weixin_29306011的博客 504

以回调形式使用startActivityForResult方法,并解决Activity被回收的问题

前言 之前写过一篇文章写一个逻辑清晰的startActivityForResult(),拒绝来回扒拉代码,写了使用回调形式使用startActivityForResult方法,配合Kotlin的语法,可以很简单的处理startActivityForResult的返回数据和返回时机. ps:由于之前名字使用startActivityForResult会导致有时导错包,所以现在名字改成了jumpForResult 问题 (假设A页面启动B页面,下面简称A和B) 但是也引出了一个问题,由于这个lam

lt的博客 4275

【Arduino】入门篇——交通信号灯

模拟交通信号灯一、实验目的二、实验材料三、电路图四、实验过程五、代码块六、实验结果 一、实验目的 我想大家都看见过交通灯,就是马路上十字路口的红绿灯。如果您开过车,我想您一定仔细观察过交通灯,如果您还没有驾驶过车,您是否仔细观察过交通灯呢?交通灯包括三种个不同颜色的灯:红灯、黄灯和绿灯。 每个路口的红绿灯切换的时间并不是相同,这个是根据不同路口的车流情况来设定的,下面就是模仿交通灯的一个实验 二...

漠宸离若的博客 1万+

一看就会,对startActivityForResult的几种实现方案的调用与封装

startActivityForResult 可以说是我们常用的一种操作了,用于启动新页面并拿到这个页面返回的数据,是两个 Activity 交互的基本操作。

m0_64420071的博客 2623

【rt-thread实战解析】从零到一:基于STM32与LAN8720A的以太网驱动配置全流程

本文详细解析了在RT-Thread操作系统上为STM32F407配置LAN8720A以太网驱动的全流程。从硬件连接自查、CubeMX工程创建、PHY复位函数编写,到RT-Thread工程配置、LwIP协议栈集成,最后进行实际上电测试与网络调试,手把手指导开发者避开常见陷阱,实现稳定的以太网连接。

m2n3b4v5c6的博客 528

RNA 8. SCI文章中差异基因表达--热图 (heatmap) 进阶:从数据标准化到多维度注释

本文深入探讨了RNA差异基因表达分析中热图(heatmap)的进阶应用,从数据标准化到多维度注释。详细介绍了FPKM标准化、Z-score转换等关键技术,以及pheatmap包的高级注释功能,帮助研究者制作发表级热图。文章还提供了视觉优化策略和生物学意义衔接的实用建议,助力SCI论文的数据可视化。

weixin_29051149的博客 303

startActivityForResult与ARouter在fragment中使用startActivityForResult

以上简单的实现基本能够满足日常使用,如果更复杂的使用场景那么可以选择更加完善易用的三方库。还有,不同的启动模式会对startActivityForResult造成各种影响,切记切记。作者:Mtk链接:https://juejin.cn/post/6861944938381672462来源:稀土掘金著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

chuyouyinghe的专栏 847

FM收音机调试-RDA5807M

收音机调试 IC型号:RDA5807M

mangofu的博客 6175

startActivityForResult用法

startActivityForResult用法 startActivityForResult主要用来从FirstActivity跳转到SecondActivity然后返回FirstActivity并且获取从SecondActivity传回来的参数。 使用方法:如下从ClockManagerActivity跳转到NewMapActivity并且传address值 ClockManagerActiv...

哼哼哈嘿的博客 4万+

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

Android之Fragment中使用startActivityForResult

大家或许有遇到这个神坑,在Fragment中使用startActivityForResult能够成功,可是在Fragment中的onActivityResult却无法被调用。一不注意就让人一夜愁白了头。苦经探索(当然包括亲爱的百度和谷歌),终于总结出了一些规律。 在Fragment中使用startActivityForResult之后,onActivityResult的调用是从activity中...

lizhong 3951

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

android startActivityForResult的使用

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

谢岩的博客 7918

数学建模模型总结

这是本人在两年内准备参加数学建模竞赛搜集到的模型资料,已经经过了本人的筛选和整理,希望能够对准备参加数学建模竞赛的学弟学妹们提供一些帮助!

安卓-startActivityForResult如何使用

这样,返回的 Intent 中就包含了指定的结果数据,在 MyActivity 的 onActivityResult 方法中可以通过 getStringExtra 等方法获取到返回的数据。返回结果的触发是在被启动的活动(即在上述示例中的 AnotherActivity)结束时发生的。在实际开发中,根据具体的需求来选择使用哪种方法。

weixin_45264683的博客 735

startActivityForResult使用场景

1. 概述 在开发项目过程中,startActivityForResult是最常见的,它的使用场景就是:比如从AActivity跳转到BActivity,然后在BActivity中做一系列操作,然后在BActivity关闭时候需要把一些数据再回传给AActivity,或者当BActivity关闭后,需要让AActivity的界面或者数据发生一些变化,这个时候就需要用到 startActivityForResult。 2. 代码如下 1>:AActivity代码如下: // 意图实现ac.

Android格调小窝 276

startActivityForResult出错

zy6576753的博客 549

startActivityForResult() 实例简述

在启动另外一个Activity的时候,有两种方法: 一种是直接使用startActivity, 另外一种就是使用startActivityForResult。 startActivityForResult的主要作用就是它可以回传数据   (1)startActivityForResult(Intent intent, int requestCode);    第一个参数:一个Inten...

RandowWrite 4922

startActivityForResult 没有反应

今天遇到个比较坑爹的问题,我用startActivityForResult并没有反应。瞬间郁闷了,代码如下Intent intent1 = new Intent(this, ChooseShiperAndCargoActivity.class); intent1.putExtra("titleStr","发货人"); intent1.

JustResponse的博客 3908

Fragment的startActivityForResult和Activity的startActivityForResult的区别

1. 前言 Activity、FragmentActivity、Fragment中都有startActivityForResult()方法,也都有用以接收结果的onActivityResult()方法,那他们有什么区别吗?用法上有什么不同吗? 之所以注意到这个问题,是因为最近一次在Fragment中使用了getActivity().startActivityForResult()去调用图片选择器,结果发现在Fragment的onActivityResult无法接收到返回的结果。 2. 表现 假设.

qijingwang的博客 956

Android中使用startActivityForResult启动活动

方法用于启动一个新的活动(Activity)并期望在该活动完成后返回结果数据给调用方。方法启动目标活动,并传递一个请求码(requestCode),用于标识这次启动请求。方法设置结果代码(resultCode)和可选的结果数据(Intent),然后调用。方法来处理需要返回结果的交互场景,从而实现更加灵活和交互性强的应用程序设计。并关闭后被调用,可以在该方法中获取返回的结果数据并进行处理。方法关闭目标活动并返回结果给调用方。方法,该方法会在目标活动调用。在Android开发中,在调用方活动中,通过调用。

微赚淘客系统开发者博客 2491

startActivityForResult

ctivity 中有一个 startActivityForResult() 方法也是用于启动活动的,但是这个方法期望在活动销毁的时候能够返回一个结果给上一个活动。 //启动活动; button.setOnClickListener(new View.OnClickListener() { @Override public void onCl...

qq_40136363的博客 361
上一篇: Android之Handler
下一篇: 使用HorizontalScrollView实现侧滑ListView
cst_code
博客等级 码龄10年 4粉丝 59原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值