运行效果:


main.xml

Java代码
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="horizontal"android:layout_width="fill_parent"
  4. android:layout_height="fill_parent">
  5. <ListViewandroid:layout_width="fill_parent"
  6. android:layout_height="wrap_content"android:id="@+id/MyListView">
  7. </ListView>
  8. </LinearLayout>



list_items.xml

Java代码
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:orientation="vertical"android:layout_width="fill_parent"
  4. android:layout_height="wrap_content"android:id="@+id/myListItem"
  5. android:paddingBottom="4dip"android:paddingLeft="12dip"
  6. android:paddingRight="12dip">
  7. <TextViewandroid:layout_height="wrap_content"
  8. android:layout_width="fill_parent"android:id="@+id/itemTitle"
  9. android:textSize="20dip"/>
  10. </LinearLayout>



list_items_tag.xml

Java代码
  1. <?xmlversion="1.0"encoding="utf-8"?>
  2. <LinearLayoutxmlns:android="http://schemas.android.com/apk/res/android"
  3. android:layout_width="fill_parent"android:layout_height="wrap_content"
  4. android:background="#555555"android:paddingLeft="10dip">
  5. <TextViewandroid:id="@+id/itemTitle"android:layout_width="wrap_content"
  6. android:layout_height="20dip"android:textColor="#ffffff"
  7. android:gravity="center_vertical"/>
  8. </LinearLayout>



MyAdapter.java

Java代码
  1. packagecom.iaiai;
  2. importjava.util.List;
  3. importjava.util.Map;
  4. importandroid.content.Context;
  5. importandroid.view.LayoutInflater;
  6. importandroid.view.View;
  7. importandroid.view.ViewGroup;
  8. importandroid.widget.BaseAdapter;
  9. importandroid.widget.TextView;
  10. /**
  11. *
  12. *<p>
  13. *Title:MyAdapter.java
  14. *</p>
  15. *<p>
  16. *E-Mail:176291935@qq.com
  17. *</p>
  18. *<p>
  19. *QQ:176291935
  20. *</p>
  21. *<p>
  22. *Http:iaiai.iteye.com
  23. *</p>
  24. *<p>
  25. *Createtime:2011-10-10
  26. *</p>
  27. *
  28. *@author丸子
  29. *@version0.0.1
  30. */
  31. publicclassMyAdapterextendsBaseAdapter{
  32. privateLayoutInflatermInflater;
  33. privateList<Map<String,String>>listData;
  34. privateList<Map<String,String>>splitData;
  35. publicMyAdapter(Contextcontext,
  36. List<Map<String,String>>listData,
  37. List<Map<String,String>>splitData){
  38. this.mInflater=LayoutInflater.from(context);
  39. this.listData=listData;
  40. this.splitData=splitData;
  41. }
  42. @Override
  43. publicintgetCount(){
  44. returnlistData.size();
  45. }
  46. @Override
  47. publicObjectgetItem(intposition){
  48. returnlistData.get(position);
  49. }
  50. @Override
  51. publiclonggetItemId(intposition){
  52. returnposition;
  53. }
  54. @Override
  55. publicbooleanisEnabled(intposition){
  56. if(splitData.contains(listData.get(position))){
  57. returnfalse;
  58. }
  59. returnsuper.isEnabled(position);
  60. }
  61. @Override
  62. publicViewgetView(finalintposition,ViewconvertView,ViewGroupparent){
  63. if(splitData.contains(listData.get(position))){
  64. convertView=mInflater.inflate(R.layout.list_items_tag,null);
  65. }else{
  66. convertView=mInflater.inflate(R.layout.list_items,null);
  67. }
  68. TextViewtextView=(TextView)convertView.findViewById(R.id.itemTitle);
  69. textView.setText(listData.get(position).get("itemTitle"));
  70. returnconvertView;
  71. }
  72. }



MainActivity.java

Java代码
  1. packagecom.iaiai;
  2. importjava.util.ArrayList;
  3. importjava.util.HashMap;
  4. importjava.util.List;
  5. importjava.util.Map;
  6. importandroid.app.Activity;
  7. importandroid.os.Bundle;
  8. importandroid.widget.ListView;
  9. /**
  10. *
  11. *<p>
  12. *Title:MainActivity.java
  13. *</p>
  14. *<p>
  15. *E-Mail:176291935@qq.com
  16. *</p>
  17. *<p>
  18. *QQ:176291935
  19. *</p>
  20. *<p>
  21. *Http:iaiai.iteye.com
  22. *</p>
  23. *<p>
  24. *Createtime:2011-10-10
  25. *</p>
  26. *
  27. *@author丸子
  28. *@version0.0.1
  29. */
  30. publicclassMainActivityextendsActivity{
  31. privateList<Map<String,String>>mylist=newArrayList<Map<String,String>>();
  32. privateList<Map<String,String>>splitList=newArrayList<Map<String,String>>();
  33. @Override
  34. protectedvoidonCreate(BundlesavedInstanceState){
  35. super.onCreate(savedInstanceState);
  36. setContentView(R.layout.main);
  37. ListViewlist=(ListView)findViewById(R.id.MyListView);
  38. setData();//设置数据
  39. //配置适配器
  40. MyAdapteradapter=newMyAdapter(this,mylist,splitList);//布局里的控件id
  41. //添加并且显示
  42. list.setAdapter(adapter);
  43. }
  44. privatevoidsetData(){
  45. //组织数据源
  46. Map<String,String>mp=newHashMap<String,String>();
  47. mp.put("itemTitle","A");
  48. mylist.add(mp);
  49. splitList.add(mp);
  50. for(inti=0;i<3;i++){
  51. Map<String,String>map=newHashMap<String,String>();
  52. map.put("itemTitle","文章1-"+i);
  53. mylist.add(map);
  54. }
  55. mp=newHashMap<String,String>();
  56. mp.put("itemTitle","B");
  57. mylist.add(mp);
  58. splitList.add(mp);
  59. for(inti=0;i<6;i++){
  60. Map<String,String>map=newHashMap<String,String>();
  61. map.put("itemTitle","文章2-"+i);
  62. mylist.add(map);
  63. }
  64. }
  65. }



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

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

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


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

Java代码
  1. @Override
  2. publicbooleanisEnabled(intposition){
  3. if(splitData.contains(listData.get(position))){
  4. returnfalse;
  5. }
  6. returnsuper.isEnabled(position);
  7. }


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

更多相关文章

  1. Android(安卓)开发之webview页面返回到最顶关闭
  2. Android——简单对话框
  3. Android(安卓)Robotium的自动化代码
  4. ‘void android.view.View.dispatchDetachedFromWindow() on a n
  5. (Android) Eclipse "launching delegate" 停在 27%的解决方法
  6. android studio 使用getActionBar返回NULL
  7. Android获取本机局域网IP的方法
  8. 浅谈Java中Collections.sort对List排序的两种方法
  9. Python list sort方法的具体使用

随机推荐

  1. Android简明开发教程十三:Option Menu 画
  2. 无法对jar进行签名,Android(安卓)jar sig
  3. 如何查看模拟器上的sqlite数据库
  4. [Android]通过PhoneLookup读取所有电话号
  5. Android(安卓)Dalvikvm 内存管理理解
  6. android 调用 webservice
  7. Android(安卓)Canvas 绘图
  8. SpannableStringBuilder 和 SpannableStr
  9. android 系统数据操作说明
  10. 《宅男的android开发指南》(翻译)--5