1. 程式人生 > >android高階控制元件介紹

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);
    }
 
}