zoukankan      html  css  js  c++  java
  • ListView Item 里多种点击事件的用法

    思路:由于item里需要处理多种点击事件,所以不便于用listview的onItemClickListener,  需要在adapter里进行设置不同点击区域的onclicklistener

    但是,有时候有些业务逻辑并不是在adapter里处理,所以需要在activity或者 fragment里提供给adapter一个接口,然后在adapter的点击事件里设置这个onclicklistener。

    eg:

    public interface ItemClickListener {
    void onLeftClick(int position);
    void onRightClick(int position);
    void onItemClick(int position);
    }

    在activity 里创建一个ItemClickListener
    ItemClickListener onItemClickListener = new ItemClickListener() {
    @Override
    public void onLeftClick(int position) {
    }

    @Override
    public void onRightClick(int position) {
    }

    @Override
    public void onItemClick(int position) {
    }
    };

    在activity 里创建一个自定义的XXXAdapter,通过构造传入onItemClickListener,和数据源list,这样就可以在activity里处理item里的各种点击事件了。
    mHistoryAdapter = new XXXAdapter(getApplicationContext(),list, onItemClickListener);

    XXXAdapter 里的关键设置

    holder.btn_cancel.setOnClickListener(new ItemListener(holder));
    holder.btn_pay.setOnClickListener(new ItemListener(holder));
    getView方法的返回对象view,设置view.setOnClickListener(new ItemListener(holder))处理整个item的点击事件
    class ItemListener implements View.OnClickListener{

    public ItemListener(ViewHolder holder) {
    this.holder = holder;
    }
    ViewHolder holder;
    @Override
    public void onClick(View v) {
    if(v.getId() == R.id.rl_arrow){
    if(holder.isshowMore){
    holder.isshowMore = false;
    }else{
    holder.isshowMore = true;
    }
    notifyDataSetChanged();
    }else if(v.getId()==R.id.btn_cancel){
    if(itemClickListener!=null){
    itemClickListener.onLeftClick(holder.pos);
    }
    }else if(v.getId()==R.id.btn_pay){
    if(itemClickListener!=null){
    itemClickListener.onRightClick(holder.pos);
    }
    }else{
    if(itemClickListener!=null){
    itemClickListener.onItemClick(holder.pos);
    }
    }
    }
    }






  • 相关阅读:
    客户端用java api 远程操作HDFS以及远程提交MR任务(源码和异常处理)
    HighCharts终极版本
    Highcharts网页版
    情感化设计中的手绘应用表现
    前端批量下载文件
    PHP 大文件下载,文件传输,支持断点续传。 2g以上超大文件也有效
    PHP超大文件下载,断点续传下载
    php下载大文件,支持断点续传案例
    解决PHP超大文件下载,断点续传下载的方法详解
    PHP如何异步断点续传大文件
  • 原文地址:https://www.cnblogs.com/lucktian/p/6903571.html
Copyright © 2011-2022 走看看