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
*/