Android开发实现ListView部分布局监听的方法

 更新时间:2018年01月19日 09:20:05   作者:清澈@Cherry  
这篇文章主要介绍了Android开发实现ListView部分布局监听的方法,结合实例形式分析了Android通过设置tag标志位实现ListView部分布局监听的相关操作技巧,需要的朋友可以参考下

本文实例讲述了Android开发实现ListView部分布局监听的方法。分享给大家供大家参考,具体如下:

android listview 部分布局监听,很多人会想,直接在适配器里面,拿到那个布局,添加点击事件就可以了,不过我会告诉你的是这时候position是错乱的,是无法根据用户点击的位置来对每个item进行相应的逻辑操作。  同事给我想到的一个办法是:给每个布局提前设置一个tag,也就是绑定对应需要设置的数据,在点击事件的时候,会有一个view,根据该view重新拿到这个tag,取得里面的数据,就可以了,防止错乱的问题,成功解决,大概的代码如下,因为加密的需要,很多代码省略:

// 适配器
public class OrAdapter extends BaseAdapter {
  @Override
  public int getCount() {
   return dataMap.size();
  }
  @Override
  public Object getItem(int position) {
   return position;
  }
  @Override
  public long getItemId(int position) {
   return position;
  }
  @Override
  public View getView(int position, View convertView, ViewGroup parent) {
   ViewHolder viewHolder = null;
   if (convertView == null) {
    viewHolder = new ViewHolder();
    convertView = getActivity().getLayoutInflater().inflate(
      R.layout.activity_order_item, null);
    initViewHolder(convertView, viewHolder, position);
   } else {
    viewHolder = (ViewHolder) convertView.getTag();
   }
   refreshViewHolder(position, viewHolder);
   return convertView;
  }
  private String getTag(String orderId, String instrument) {
   StringBuilder sb = new StringBuilder();
   sb.append(orderId).append(";").append(instrument);
   return sb.toString();
  }
  private void refreshViewHolder(int position, ViewHolder viewHolder) {
   // ------------------为了防止item被复用------------------
   viewHolder.modeifyorder.setTag(getTag(orderid, instrument));
  }
  private void initViewHolder(View convertView, ViewHolder viewHolder,
    final int position) {
   viewHolder.modeifyorder = (RelativeLayout) convertView
     .findViewById(R.id.modeifyorder);
   viewHolder.modeifyorder.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
     int isman = (Integer) dataMap.get(position).get("ismanual");
     int isprice = (Integer) dataMap.get(position).get(
       "ispricereached");
      String tag = v.getTag().toString();
      String tagVec[] = tag.split(";");
      long orderId = Long.parseLong(tagVec[0]);
      String instStr = tagVec[1];
    }
   });
   convertView.setTag(viewHolder);
  }
  private class ViewHolder {
   TextView orderid;
   RelativeLayout modeifyorder;
  }
}

有不明白的可以相互交流

更多关于Android相关内容感兴趣的读者可查看本站专题:《Android控件用法总结》、《Android开发入门与进阶教程》、《Android视图View技巧总结》、《Android编程之activity操作技巧总结》、《Android数据库操作技巧总结》及《Android资源操作技巧汇总

希望本文所述对大家Android程序设计有所帮助。

相关文章

  • Android大图监测系统的三种实现方式

    Android大图监测系统的三种实现方式

    在Android应用中,大图的加载和显示可能导致内存占用过高,进而引发OOM(Out Of Memory)异常,影响应用的稳定性和用户体验,为了更好地管理大图资源,我们需要建立起一套可靠的大图监测系统,文中有详细的代码示例供大家参考,需要的朋友可以参考下
    2024-01-01
  • Android组件化、插件化详细讲解

    Android组件化、插件化详细讲解

    这篇文章主要介绍了Android组件化、插件化详细讲解,这些单独⼆次封装的功能模块apk,就称作插件,文章围绕主题展开详细的内容介绍,需要的朋友可以参考一下
    2022-07-07
  • Android实现简单加法计算器

    Android实现简单加法计算器

    这篇文章主要为大家详细介绍了Android实现简单加法计算器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2020-03-03
  • 实例详解Android Selector和Shape的用法

    实例详解Android Selector和Shape的用法

    shape和selector是Android UI设计中经常用到的,比如我们要自定义一个圆角Button,点击Button有些效果的变化,就要用到shape和selector,通过本文结合代码实例给大家详解Android Selector和Shape的用法,感兴趣的朋友一起学习吧
    2016-01-01
  • Android控件系列之XML静态资源使用介绍

    Android控件系列之XML静态资源使用介绍

    本文全面介绍了在Android中,如何充分利用XML布局文件来配合Java构筑界面,从而达到界面与逻辑的代码分离。另外,还介绍了如何分别在XML和代码中如何获取静态资源的值或者控件的实例
    2012-11-11
  • 详解Android截屏事件监听

    详解Android截屏事件监听

    本篇文章主要介绍了Android截屏事件监听,Android系统没有直接对截屏事件监听的接口,本文介绍了2种方法,有兴趣的可以了解一下。
    2016-12-12
  • Android蓝牙通信聊天实现发送和接受功能

    Android蓝牙通信聊天实现发送和接受功能

    这篇文章主要为大家详细介绍了Android蓝牙通信聊天实现发送和接受功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-07-07
  • Android 自定义imageview实现图片缩放实例详解

    Android 自定义imageview实现图片缩放实例详解

    这篇文章主要介绍了Android 自定义imageview实现图片缩放实例详解的相关资料,需要的朋友可以参考下
    2017-04-04
  • Android Studio提示inotify大小不足的解决办法

    Android Studio提示inotify大小不足的解决办法

    大家在使用Android Studio导入AOSP源码的时候,可能会遇到inotify大小不足的问题,这篇文章就给大家介绍了怎么解决这个问题的方法,有需要的朋友们可以参考借鉴。
    2016-09-09
  • 玩转AppBarLayout实现更酷炫的顶部栏

    玩转AppBarLayout实现更酷炫的顶部栏

    玩转AppBarLayout,实现更酷炫的顶部栏,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2016-09-09

最新评论