zoukankan      html  css  js  c++  java
  • 选择控件

    1、适配器(Adapter的作用)
       适配器对不同数据源的数据进行封装,可以对外提供统一的访问方式,这样控件本身
       不关心数据的来源,只要绑定相应的适配器就可以了,简化了各种控件读取数据程序的复杂性。

    2、主要的适配器类型
       2.1、ArrayAdapter  它封装的是数组
       2.2、SimpleAdapter  它封装的是一个ArrayList<Map<String,Object>>
       2.4、BaseAdapter    用户自定义的Adapter
       2.4、CursorSimpleAdapter 它封装的是一个操作数据库所返回的Cursor

    3、ListView 搭配使用ArrayAdapter
        1、配置适配器 2、绑定适配器
       假如一个Activity中只有一个ListView控件,我们可以直接继承ListActivity
       如果继承了ListActivity,又想使用自定义布局文件
       那个这个布局文件中必须存在ListActivity中自带的
       那个ListView控件的引用,名字是@android:id/list

    4、ListView 搭配使用SimpleAdapter(自定义布局文件)
       SimpleAdapter封装的数据是集合。集合内是一个map。
       用来自定义布局

    5、spinner (微调控件)
            //设置微调控件的外观
            adapter=new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item,citys);
     //设置微调控件弹出下拉菜单的外观
         adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    6、GridView(网格控件)操作方式和ListView一样
        常用属性:
         android:numColumns="3" //一行显示的单元格数
         android:horizontalSpacing="5dp" //单元格间水平间距
         android:verticalSpacing="5dp"   //单元格间垂直间距
         android:stretchMode="columnWidth"  //设置延伸模式来充满整个屏幕
         android:columnWidth="64dp"  //设置单元格的宽度
    7、AutoCompleteTextView(自动完成文本)

    8、Gallery(画廊)


    9、BaseAdapter(基础适配器)
      ArrayAdapter,SimpleAdapter都继承BaseAdapter
      所以我们同样可以继承BaseAdapter来实现自定义的适配器

      继承 BaseAdapter 要重写以下几个方法
      /**
        * 设置adapter共有几项数据
      */
     @Override
        public int getCount() {
     return names.length;
        }

        /**
          * 通过调用getItemAtPosition(position) 方法所返回的所绑定的数据源
          */
     @Override
     public Object getItem(int position) {
      return names[position];
     }

     /**
       * 返回所点击选项的索引号
     */
     @Override
     public long getItemId(int position) {
      return position;
     }

     /**
       * 用来生成视图控件的方法,有几行数据就调用几次 View是所有控件的父类
       */
     @Override
     public View getView(int position, View convertView, ViewGroup parent) {
     }

    10、布局填充泵用来解析xml文件生成视图
        // 得到布局xml文件的解析器
         LayoutInflater layoutInflater = getLayoutInflater();
        // 通过布局填充泵来解析xml文件,使之生成一个控件视图
         View view = layoutInflater.inflate(R.layout.my, null);

    11、ListView 控件的优化,当一行数据离开ListView控件的时候
        它不会被释放,而是放入回收站,那么下面上来的数据就会从
        回收站中取出来(取出来的放在了convertView),不会重新
        解析填充,无非就是把回收到的对象内的数据进行修改下重复
        使用,提高了效率。
    12、持有者模式优化
        每行数据都持有一个管理对象,这个对象会帮你查找想要的组件,
        第一次它会查找,找到后保存起来,下次再要其查找的话,它会
        把第一次找到的对象直接返回,而不会重复查找,提高了查找的
        效率。
     
               

       

  • 相关阅读:
    PostgreSQL主备切换
    PostgreSQL流复制
    PostgreSQL存储过程(5)-异常错误处理
    PostgreSQL存储过程(4)-return语句
    vue+element ui项目总结点(二)table合计栏目,按照起始年份--截止年份 插入数据并向后追加数据以最后一条年份+1
    vue+element ui项目总结点(一)select、Cascader级联选择器、encodeURI、decodeURI转码解码、mockjs用法、路由懒加载三种方式
    react基础语法(五) state和props区别和使用
    js获取上周、本周、下周的时间
    Python基础语法(二)
    Python基础语法(一)
  • 原文地址:https://www.cnblogs.com/liangxiaofeng/p/3491559.html
Copyright © 2011-2022 走看看