• Android 列表之分组ListView


    1、主要是处理分组标签

    禁止标签项的响应事件,重写父类BaseAdapter中提供了isEnable的()方法。

    2、下面是 Adapter 的实现:

    class MyAdapter extends ArrayAdapter<String> {

      public MyAdapter(Context context, int textViewResourceId,
        List<String> objects) {
       super(context, textViewResourceId, objects);

      }

      @Override
      public boolean areAllItemsEnabled() {
       return false;
      }

      @Override
      public boolean isEnabled(int position) {
       // 如果-开头,则该项不可选
       return !listTag.contains(getItem(position));
      }

      @Override
      public View getView(int position, View convertView, ViewGroup parent) {
       View view = convertView;
       // 根据标签类型加载不通的布局模板
       if (listTag.contains(getItem(position))) {
        // 如果是标签项
        view = LayoutInflater.from(getContext()).inflate(
          R.layout.group_list_item_tag, null);
       } else {
        // 否则就是数据项
        view = LayoutInflater.from(getContext()).inflate(
          R.layout.group_list_item, null);
       }
       // 显示名称
       TextView textView = (TextView) view
         .findViewById(R.id.group_list_item_text);
       textView.setText(getItem(position));
       // 返回重写的view
       return view;
      }

     }

    3、构造显示的数据:

    private List<String> getData() {
      List<String> data = new ArrayList<String>();
      int i = 0;

      data.add("A");
      listTag.add("A");
      data.add("aa试数据" + (i++));
      data.add("a试数据" + (i++));
      data.add("aa试数据" + (i++));
      
      listTag.add("B");
      data.add("B");
      data.add("bb试数据" + (i++));
      data.add("b试数据" + (i++));
      data.add("b试数据" + (i++));
      data.add("b试数据" + (i++));
      
      listTag.add("C");
      data.add("C");
      data.add("c测试数据" + (i++));
      data.add("c测试数据" + (i++));
      
      listTag.add("D");
      data.add("D");
      data.add("d测试数据" + (i++));
      data.add("d测试数据" + (i++));
      data.add("d测试数据" + (i++));
      
      listTag.add("E");
      data.add("E");
      data.add("e测试数据" + (i++));
      data.add("e测试数据" + (i++));
      data.add("e测试数据" + (i++));
      
      listTag.add("F");
      data.add("F");
      data.add("f测试数据" + (i++));
      
      return data;
     }

    4、显示ListView

    listView = (ListView) findViewById(R.id.list);
    myAdapter = new MyAdapter(this,
    android.R.layout.simple_expandable_list_item_1, getData());
     listView.setAdapter(myAdapter);
  • 相关阅读:
    Oracle db 使用转换函数和条件表达式
    Oracle DB 嵌套函数
    Oracle DB NVL、NVL2、NULLIF、COALESCE函数
    OCP-1Z0-051-V9.02-92题
    OCP-1Z0-051-V9.02-90题
    OCP-1Z0-051-V9.02-89题
    OCP-1Z0-051-V9.02-88题
    OCP-1Z0-051-V9.02-87题
    OCP-1Z0-051-V9.02-86题
    OCP-1Z0-051-V9.02-85题
  • 原文地址:https://www.cnblogs.com/tangxl/p/2650258.html
Copyright © 2020-2023  润新知