Android基础---四步教你理解回调

作者: SmartSean | 来源:发表于2017-03-21 16:38 被阅读296次

前言

项目中要用到类似支付宝首页九宫格的显示,主要分为两个部分:第一部分是我的应用;第二部分是全部应用。要实现可以从我的应用中删除已添加的常用应用,也可以从全部应用添加到我的应用中。

本来是想实现可以拖动排序的,但是由于自己的技术功底还不够,就先实现了可以增加和删除的小功能。后来自己使用的是稍微修改过的 GridView 来实现的。

但是在实现的过程中,发现我需要在 GridView 的 item 里面来控制在 Activity 中的和 GridView 同级别的的控件,就在网上搜索,不知道是自己的搜索方法不对,还是本身的内容就比较少,搜索了大半天都没搜索到,于是问了公司的同事,同事说用一个接口来回调就可以了。

需求

在 GridView 的 Adapter 里面长按 item 改变 在 Activity 中的控件。

效果演示:

如果我长按 GridView 中的 item ,就要改变上方的“编辑”按钮变成“完成”。效果如下:


效果图

四步实现

1.首先定义一个接口:

public interface UpdateDataInterface {
    void setText(String text);
}

2.在“编辑”控件所在的Activity或者Frafment中实现该接口如下:

    /**
     * 实现在adapter内部更改主页按钮
     * workManageTv就是显示"编辑"和"完成"的TextView
     */
    class UpdateTextImp implements UpdateDataInterface {

        @Override
        public void setText(String text) {
            workManageTv.setText(text);
        }
    }

3.然后在实例化适配器对象的时候把这个接口传递进去:

// WorkMyAppAdapter就是适配器
workMyAppAdapter = new WorkMyAppAdapter(context, new UpdateTextImp(), false);

4.在适配器里面定义该接口,在构造方法中接收该接口,并直接拿来用,调用接口中的方法即可

// 定义用于回调的类
private UpdateDataInterface updateDataInterface;

// 构造方法,接收 UpdateDataInterface 
public WorkMyAppAdapter(UpdateDataInterface updateDataInterface){
    this.updateDataInterface = updateDataInterface;
}

// 调用
public void changeStatus(){
    if (isEdit) {
        updateDataInterface.setText("完成");
    } else {
        updateDataInterface.setText("编辑");
    }
}

以前自己总是不太清楚回调的实现,但是模模糊糊的会用上一点,今天到自己真正需要的时候,自己一步步的去实现,才真正懂了回调的用法。

特此记录!

相关文章

  • Android基础---四步教你理解回调

    我的简书:简书传送门 我的CSDN:CSDN传送门 我的GitHub:GitHub传送门 前言 项目中要用到类似支...

  • 初步理解接口回调

    2019.03.09Android学习周记——初步理解接口回调本文将通过自己的理解来一步一步浅层讲解接口回调 这个...

  • Android中回调的理解

    一般我们在不同的应用传递数据,比较方便的是用广播和回调函数,还有一些其他的方式,这里记录一下对回调函数的理...

  • 【Android 进阶】 Android 回调理解

    Android 事件处理方法: 监听事件 回调事件 阅读过不少关于回调事件文章,每次理解一点点,但在实际项目中不能...

  • Android 基础之接口回调

    概述 接口回调其本质与上转型是一样的,不同的是:接口回调是用接口句柄来得到并调用实现这个接口的子类的引用;而上转型...

  • 理解回调

    之前一直对回调这个概念不甚理解,对某一概念不理解但该概念又总总出现实在让人不爽,今天总算忍无可忍,发动Google...

  • 通过Android源码理解回调函数

    概述 我们先看一下维基百科对回调函数的定义: 在计算机程序设计中,回调函数,或简称回调(Callback 即cal...

  • ShareSDK微信没有回调问题解决

    Android-微信-回调微信没有回调?微信回调:这个WXEntryActivity.java 类 必须要在wxa...

  • android 回调

    在Android开发中我们很多地方都用到了方法的回调,回调就是把方法的定义和功能导入实现分开的一种机制,目的是为了...

  • Android接口回调

    之前对接口回调一直有点模糊,会写但是理解的不透彻,今天记录一下自己理解的回调是什么。 接口回调是什么? 接口回调是...

网友评论

  • unfind:java的基础知识。。。跟这个标题,android的回调没有多大关系吧?
    SmartSean:嗯嗯,可能在你看起来比较基础,我是去年才get到这个知识点的,是从csdn搬过来,重新改点东西的博客。
  • EGOISTK21:这个例子简单明了,我看出了MPV的影子
    SmartSean: @EGOISTK 。。。
    EGOISTK21:@CodingSean 说错了MVP,Model View Presenter,一种app架构
    SmartSean:@EGOISTK MPV是啥?

本文标题:Android基础---四步教你理解回调

本文链接:https://www.haomeiwen.com/subject/jnxinttx.html