Android屏蔽ListView部分Item点击事件

做个记录,一般情况我们只要处理ListView的点击事件时候只需mListView.setOnItemClickListener()即可,但是有时候有些特殊需求,某些Item是不需要添加点击事件的,比如我一个任务列表,其中未完成的任务要跳转到相应的页面,已完成的任务不可点击,这时候该怎么处理?本文记录如下:

我们在Adapter中复写下面两个方法即可实现该需求

@Override
 public boolean areAllItemsEnabled() {
     return false;// 所有的Item不可点击
 }

 @Override
 public boolean isEnabled(int position) {
     // 该位置判断的一个状态,比如栗子中的“已完成/未完成”
     // 也可以根据位置进行拦截,第一条Item不可点击为:if (position == 0) {
     if (mList.get(position).isStatus()) {
         return false;// 符合条件的Item不可点击
     } else {
         // 拦截事件交给上一级处理
         return super.isEnabled(position);
     }
 }

这样一来在页面中setOnItemClickListener就不用处理各种 if 和 else 了。

发布了59 篇原创文章 · 获赞 88 · 访问量 19万+

猜你喜欢

转载自blog.csdn.net/geofferysun/article/details/78071624