zoukankan      html  css  js  c++  java
  • 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);
  • 相关阅读:
    区别@ControllerAdvice 和@RestControllerAdvice
    Cannot determine embedded database driver class for database type NONE
    使用HttpClient 发送 GET、POST、PUT、Delete请求及文件上传
    Markdown语法笔记
    Property 'sqlSessionFactory' or 'sqlSessionTemplate' are required
    Mysql 查看连接数,状态 最大并发数(赞)
    OncePerRequestFilter的作用
    java连接MySql数据库 zeroDateTimeBehavior
    Intellij IDEA 安装lombok及使用详解
    ps -ef |grep xxx 输出的具体含义
  • 原文地址:https://www.cnblogs.com/tangxl/p/2650258.html
Copyright © 2011-2022 走看看