高級控件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

         */

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