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);
  • 相关阅读:
    2.4.4.1、Django新建APP(acounts)
    2.4.3、Django用户权限控制
    2.4.2、Django处理登录和注销
    2.4.1、Django使用内置的Admin管理用户
    2.4、使用Django自带的admin用户管理,权限管理
    2.3、django项目对数据库的操作
    2.2、创建第一个Django项目
    2、Django框架介绍
    github设置添加SSH(转)
    form表单回车提交问题
  • 原文地址:https://www.cnblogs.com/tangxl/p/2650258.html
Copyright © 2011-2022 走看看