04 高级控件总结


1,Spinner
    >概念;下拉菜单控件 默认显示当前选择的项(第一次展示集合中第一条数据)
    >属性:
        android:entries="@array/books"  展示数据  (note:提前知道数据是什么 )
         android:spinnerMode="dropdown" spinner 样式
         dropdown:下拉列表     设置popupBackground  每一项的背景颜色
         dialog:弹出框              设置prompt   标题      调用的是Values/string.xml/string  

     >监听:setOnItemSelectedListener
    
2,什么是Adapter?
    >适配器  将数据转换成控件识别的形式

    >子类:BaseAdapter(下周)    ArrayAdapter     SimpleAdapter
    
3,ArrayAdapter的使用?
    >一般用于只有String类型数据  展示到TextView上

    >如果三个参数的ArrayAdapter   item布局的根节点 必须是TextView
         如果跟节点不是TextVIew 三个参数的会报错      使用四个参数的ArrayAdapter
    
4,SimpleAdapter的使用:
    >处理复杂的数据   (带有图片和文字)

       Context context:   上下文
           List<? extends Map<String, ?>> data:  数据源
             int resource:  布局
             String[] from:  数据源中带key的数组
             int[] to     :  布局资源中id的数组
             
             note:from里的key和to里的控件id  是对应关系

5,AutoCompleteTextView
    >自动索引的EditText(文本输入框)

    > 默认输入俩个字符  才开始索引
          android:completionThreshold="1" 输入几个字符开始索引
        
6,addTextChangedListener()的用法?

    >
    
        
        //文本发生变化的监听   可以对EditText操作  
        autoView.addTextChangedListener(new TextWatcher() {
            
            /**
             * 改变文本时调用
             * CharSequence s:变化之后的文本
             * int start:变化的起点  从哪里开始改变
             * int before: 相比较文本变化  添加没有改变0     删除改变
             * int count:相比较文本变化     添加有值          删除没有改变0
             */
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                // TODO Auto-generated method stub
                Log.e("AAA", "==onTextChanged==s:"+s+"=start:"+start+"=before:"+before+"=count:"+count);
            }
            
            /**
             * 改变文本之前调用
             * CharSequence s:变化之前的文本
             * int start:变化之前的文本下标
             * int count:相比较文本的变化   添加不变的0   删除是改变:删除几个展示结果
             * int after:相比较文本的变化     如果添加是有值    如果删除不变   0
             */
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {
                // TODO Auto-generated method stub
                Log.e("AAA", "==beforeTextChanged==s:"+s+"=start:"+start+"=count:"+count+"=after:"+after);
                
            }
            /**
             * 改变文本之后调用
             * Editable s:改变之后的文本
             */
            @Override
            public void afterTextChanged(Editable s) {
                // TODO Auto-generated method stub
                Log.e("AAA", "==afterTextChanged==s:"+s);
            }
        });
    

    /**
         * 08-25 15:23:44.334: E/AAA(12812): ==beforeTextChanged==s:=start:0=count:0=after:1
            08-25 15:23:44.334: E/AAA(12812): ==onTextChanged==s:g=start:0=before:0=count:1
            08-25 15:23:44.334: E/AAA(12812): ==afterTextChanged==s:g
            08-25 15:23:45.904: E/AAA(12812): ==beforeTextChanged==s:g=start:1=count:0=after:1
            08-25 15:23:45.904: E/AAA(12812): ==onTextChanged==s:gh=start:1=before:0=count:1
            08-25 15:23:45.904: E/AAA(12812): ==afterTextChanged==s:gh
            08-25 15:23:47.824: E/AAA(12812): ==beforeTextChanged==s:gh=start:2=count:0=after:1
            08-25 15:23:47.824: E/AAA(12812): ==onTextChanged==s:ghj=start:2=before:0=count:1
            08-25 15:23:47.824: E/AAA(12812): ==afterTextChanged==s:ghj
            08-25 15:23:49.164: E/AAA(12812): ==beforeTextChanged==s:ghj=start:2=count:1=after:0
            08-25 15:23:49.164: E/AAA(12812): ==onTextChanged==s:gh=start:2=before:1=count:0
            08-25 15:23:49.164: E/AAA(12812): ==afterTextChanged==s:gh
            08-25 15:23:49.694: E/AAA(12812): ==beforeTextChanged==s:gh=start:1=count:1=after:0
            08-25 15:23:49.694: E/AAA(12812): ==onTextChanged==s:g=start:1=before:1=count:0
            08-25 15:23:49.694: E/AAA(12812): ==afterTextChanged==s:g

         */

posted on 2016-08-26 18:28  木鱼哥  阅读(105)  评论(0编辑  收藏  举报

导航