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

}

猜你喜欢

转载自blog.csdn.net/qq_43227109/article/details/83446017