高级控件Spinner

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

         */

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章