运行效果:


main.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="horizontal" android:layout_width="fill_parent"  android:layout_height="fill_parent">  <ListView android:layout_width="fill_parent"   android:layout_height="wrap_content" android:id="@+id/MyListView">  </ListView></LinearLayout>

list_items.xml

 <?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:orientation="vertical" android:layout_width="fill_parent"  android:layout_height="wrap_content" android:id="@+id/myListItem"  android:paddingBottom="4dip" android:paddingLeft="12dip"  android:paddingRight="12dip">  <TextView android:layout_height="wrap_content"   android:layout_width="fill_parent" android:id="@+id/itemTitle"   android:textSize="20dip" /></LinearLayout>

list_items_tag.xml

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  android:layout_width="fill_parent" android:layout_height="wrap_content"  android:background="#555555" android:paddingLeft="10dip">  <TextView android:id="@+id/itemTitle" android:layout_width="wrap_content"   android:layout_height="20dip" android:textColor="#ffffff"   android:gravity="center_vertical" /></LinearLayout>

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<Map<String, String>> listData;   private List<Map<String, String>> splitData;   public MyAdapter(Context context,     List<Map<String, String>> listData,     List<Map<String, String>> 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<Map<String, String>> mylist = new ArrayList<Map<String, String>>();  private List<Map<String, String>> splitList = new ArrayList<Map<String, String>>();   @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<String, String> mp = new HashMap<String, String>();   mp.put("itemTitle", "A");   mylist.add(mp);   splitList.add(mp);    for (int i = 0; i < 3; i++) {     Map<String, String> map = new HashMap<String, String>();     map.put("itemTitle", "文章1-" + i);     mylist.add(map);   }    mp = new HashMap<String, String>();   mp.put("itemTitle", "B");   mylist.add(mp);   splitList.add(mp);    for (int i = 0; i < 6; i++) {     Map<String, String> map = new HashMap<String, String>();     map.put("itemTitle", "文章2-" + i);     mylist.add(map);   }  }}

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

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

Java代码

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

//默认情况,如果这个方法不是分割符,返回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. 使用universal-image-loader中出现的EOFException解决方法
  4. Android(安卓)关闭所有Activity完全退出程序方法
  5. Android(安卓)OnTouchListener 触摸事件 & GestureDetector 手势
  6. android、pull解析xml
  7. Android(安卓)BaseAdapter如何获得每一项并添加按钮事件
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. Android进程管理机制及优化(HTC&其它可参
  2. Android开机速度 ------之ART预优化dex2o
  3. Android高手进阶教程(二十五)之---Androi
  4. Android(安卓)4.0 触摸屏消息(二大写的二)
  5. Android中的线程处理
  6. Android(安卓)资源,国际化,自适应
  7. Android九宫格图片(9.png)的讲解与制作
  8. 想抢先体验Android操作系统的魅力吗?那就
  9. 如何检索Android设备的唯一ID
  10. Android身陷恶意扣费门 部分开发者参与其