专栏首页编程之路羊皮书APP(Android版)开发系列(二十)在Activity中响应ListView,GridView 内部按钮的点击事件

羊皮书APP(Android版)开发系列(二十)在Activity中响应ListView,GridView 内部按钮的点击事件

业务稍微复杂一点的界面,在ListView,GridView等的Adapter中都会有内部按钮,需要处理内部按钮的点击事件。而Adapter和Activity是分离的(不要将Adapter写在Activity里面),这时候,我们可以使用回调来实现Activity中响应ListView,GridView 内部按钮的点击事件。

在Adapter中定义一个接口(或在外面定义也可以)

 private Callback editCallback;
 public interface Callback {
        public void click(View v);
    }

为Adapter创建构造方法

 public StudentNormalDataInfoAdapter(Context context,Callback editCallback) {
        super();
        mInflater = LayoutInflater.from(context);
        this.editCallback = editCallback;
    }

在Adapter中的getView中设置点击事件

viewHolder.students_quality_delete_bt.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                editCallback.click(v);
            }
        });

完成以上几步,就可以在Activity中响应按钮点击事件了

public class HistoryActivity extends Activity implements Callback {
 @Override
    public void click(View v){
    L.e("响应按钮点击事件");
    }
    ...
}

通常点击事件都会带有一些参数,这个时候只要在接口Callback的click上直接加参数即可。 另外,其他这方面的需求也都可以采用这种方式,要学会举一反三哦!

关于Adapter今天看见鸿洋大神开源出来的baseAdapter,挺好的,有很多地方值得大家学习,推荐大家看一下。

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 羊皮书APP(Android版)开发系列(三)APP引导页启动控制类

    热心的程序员
  • 羊皮书APP(Android版)开发系列(十九)在ScrollView中使用ListView、GridView的方法

    热心的程序员
  • 羊皮书APP(Android版)开发系列(二十三)10分钟单例模式实战-Glide图片加载库封装工具类

    热心的程序员
  • Android实现随意拖动View效果的实例代码

    项目过程中要实现能在页面中随意的拖动,刚开始实现是用悬浮球的形式进行实现,因为之前项目中用过,实现后发现用户每次安装后,都有权限的限制,甚至有些用户关闭悬浮球权...

    砸漏
  • Android实现随意拖动View效果

    项目过程中要实现能在页面中随意的拖动,刚开始实现是用悬浮球的形式进行实现,因为之前项目中用过,实现后发现用户每次安装后,都有权限的限制,甚至有些用户关闭悬浮球权...

    SoullessCoder
  • 抽象类和接口的区别

    定义一个抽象类AbstractDoor,作为门的基类,同时定义一个alarmable的接口.(alarmable是我自己写的,我不知道有没有这个单词,大家懂就好...

    呼延十
  • Java-抽象类&接口

    abstract: 关键字,用于修饰方法和类 抽象方法: 不同类的方法是相似的,但是具体内容又不太一样,所以我们智能抽取它的申明,没有具体的方法体,没有具体方...

    DataScience
  • 剑指Offer-二叉树的深度

    package Tree; import java.util.LinkedList; import java.util.Queue; /** * 二叉树...

    武培轩
  • Java Lambda表达式

    Java Lambda表达式是Java8中的新特性。Java lambda表达式是Java进入函数式编程的第一步。因此,Java lambda表达式是可以单...

    三分恶
  • 说一下Java中抽象类和接口存在的意义与价值

    定义是很简单的,我们这里不写官方的语言,我自己看着都烦,我们就用白话介绍,抽象类本质是一个类,没问题,那么类里面一般都是有方法的,方法包括方法名和方法体,这是常...

    何处锦绣不灰堆

扫码关注云+社区

领取腾讯云代金券