运行效果:


main.xml

<?xml version="1.0" encoding="utf-8"?>    

list_items.xml

 <?xml version="1.0" encoding="utf-8"?>  

list_items_tag.xml

<?xml version="1.0" encoding="utf-8"?>  

MyAdapter.java

package com.iaiai; import java.util.List;import java.util.Map; import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.TextView; public class MyAdapter extends BaseAdapter {   private LayoutInflater mInflater;   private List> listData;   private List> splitData;   public MyAdapter(Context context,     List> listData,     List> splitData) {   this.mInflater = LayoutInflater.from(context);   this.listData = listData;   this.splitData = splitData;  }   @Override  public int getCount() {   return listData.size();  }   @Override  public Object getItem(int position) {   return listData.get(position);  }   @Override  public long getItemId(int position) {   return position;  }   @Override  public boolean isEnabled(int position) {   if (splitData.contains(listData.get(position))) {     return false;   }   return super.isEnabled(position);  }   @Override  public View getView(final int position, View convertView, ViewGroup parent) {   if (splitData.contains(listData.get(position))) {     convertView = mInflater.inflate(R.layout.list_items_tag, null);   } else {     convertView = mInflater.inflate(R.layout.list_items, null);   }    TextView textView = (TextView) convertView.findViewById(R.id.itemTitle);   textView.setText(listData.get(position).get("itemTitle"));    return convertView;  }}

MainActivity.java

package com.iaiai; import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map; import android.app.Activity;import android.os.Bundle;import android.widget.ListView; public class MainActivity extends Activity {   private List> mylist = new ArrayList>();  private List> splitList = new ArrayList>();   @Override  protected void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.main);    ListView list = (ListView) findViewById(R.id.MyListView);    setData(); // 设置数据    // 配置适配器   MyAdapter adapter = new MyAdapter(this, mylist, splitList); // 布局里的控件id   // 添加并且显示   list.setAdapter(adapter);  }   private void setData() {   // 组织数据源   Map mp = new HashMap();   mp.put("itemTitle", "A");   mylist.add(mp);   splitList.add(mp);    for (int i = 0; i < 3; i++) {     Map map = new HashMap();     map.put("itemTitle", "文章1-" + i);     mylist.add(map);   }    mp = new HashMap();   mp.put("itemTitle", "B");   mylist.add(mp);   splitList.add(mp);    for (int i = 0; i < 6; i++) {     Map map = new HashMap();     map.put("itemTitle", "文章2-" + i);     mylist.add(map);   }  }}

========================================================================
以上为示例所有代码,以下为说明

禁止标签项的响应事件,父类BaseAdapter中提供了isEnable的()方法,我们看看这个方法:

Java代码  

  1. //默认情况,如果这个方法不是分割符,返回true  
  2. //分隔符是无选中和无点击事件的   
  3. //说白了,你想不想把改position项当做分隔符,想的话就返回false,否则返回true  
  4. public boolean isEnabled (int position)  

//默认情况,如果这个方法不是分割符,返回true

//分隔符是无选中和无点击事件的

//说白了,你想不想把改position项当做分隔符,想的话就返回false,否则返回true

public boolean isEnabled (int position)


这个方法刚好用来禁用标签项的响应事件。

 

@Overridepublic boolean isEnabled(int position) {  if(splitData.contains(listData.get(position))) {   returnfalse;  }  returnsuper.isEnabled(position);}


现在标签项不会再有任何触控效果了,犹如一块死木板。


原地址:http://blog.sina.com.cn/s/blog_4ca9ceef0100za7f.html

更多相关文章

  1. Android下拉列表使用方法
  2. Android获得屏幕分辨率的两种方法
  3. android监听edittext输入事件
  4. Android中getChildAt()方法介绍
  5. 毕设---android按钮事件
  6. Android Recyclerview 滚动事件监听
  7. Android中NDK的使用方法
  8. Android的window类的常用方法
  9. Android 拨打webView 里面的电话号码的方法

随机推荐

  1. 快递公司如何接入快递100?快递100的快递查
  2. 快递公司如何接入快递100?快递100电子面单
  3. 快递公司如何接入快递100?快递100手机查快
  4. 0517 mvc架构模式思想
  5. php 的变量与常量----0426
  6. js 中 for,foreach 遍历数组,与PHP 中 for,f
  7. 网站安全响应头缺失和php配置漏洞
  8. php之请求api数据与composer
  9. 本地git的配置和一些命令
  10. php之mvc架构思想