android高階控制元件介紹
1. 高階控制元件與低階控制元件區別
高階控制元件需要介面卡 而低階不用
2. 介面卡種類
陣列介面卡 ArrayAdapter
new ArrayAdapter<String>(this,R.layout.actv_style, names);
簡單介面卡 SimpleAdapter(放圖片)
也叫“並不簡單的簡單介面卡”
new SimpleAdapter(this(上下文),data3(資料來源),R.layout.actv_style(項資原始檔),new String[]{"img","desc"}(資料來源鍵),new int[]{R.id.iv_main_img,R.id.iv_main_desc}(項資源裡面id跟前面對應));
核心:
1、陣列介面卡
String[] AutoCompleteTextView 項資源
List<Dept> Spinner 項資源
2、獲取下拉框的值
3、簡單介面卡
List<Map> 資料來源都是map資料 項資源
3.高階控制元件使用步驟:
Spinner(下拉框控制元件)
自動提示文字框 AutoCompleteTextView(單一提示) 拿一個控制元件來說
首先上面要定義控制元件id 然後定義一個數據源 一個介面卡
3.1 獲取資料
3.2 建立介面卡
3.3 繫結介面卡 以下三點都寫在裡面 簡單介面卡跟陣列介面卡差不多多了兩個引數上面有寫到 下面就只是陣列介面卡繫結具體方法。
假如拿到下拉框值 option select=(option)sp_main_xia.getselectedIdItem();//選中那一項
吐司框 彈訊息Toast.makeText(this,select.getvalue(),Toast.l.......);//中間是拿到上面選中的value值
package com.example.android_04;
public class MainActivity extends AppCompatActivity {
private String[] data1;//定義資料來源
private ArrayAdapter dapt1;//定義介面卡
private AutoCompleteTextView at_main_text;//定義控制元件id
private List<Option> data2=new ArrayList<>();
private ArrayAdapter dapt2;
private Spinner at_main_xia;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
data1=new String[]{ "憤怒的小鳥", "湯姆貓", "落湯雞", "牛牛", "哈巴狗", "神龍", "烤鴨",
"小象", "美人魚", "九尾狐" };//資料來源
dapt1=new ArrayAdapter(this,R.layout.at_main_temp1,data1);//建立介面卡
at_main_text.setAdapter(dapt1);//把介面卡裡面的東西繫結給這個控制元件
stat1();
dapt2=new ArrayAdapter(this,R.layout.at_main_temp1,data2);
at_main_xia.setAdapter(dapt2);
}
private void stat1() {
List<Map<String,String>> list=new ArrayList<>();
Map<String,String> map;
for (int i=0;i<=5;i++){
map=new HashMap<>();
map.put("id",i+"");
map.put("name","小"+i+"啊");
list.add(map);
}
for (Map<String,String> map1:list){
data2.add(new Option(map1.get("id"),map1.get("name")));
}
}
private void initView() {//初始化一下這個控制元件
at_main_text=findViewById(R.id.at_main_text);
at_main_xia=findViewById(R.id.s_main_xia);
}
}