1. 高级控件与低级控件区别
是否使用适配器
2. 适配器种类和作用
2.1 种类
数组适配器 ArrayAdapter
new ArrayAdapter<String>(this,R.layout.actv_style, names);
简单适配器 SimpleAdapter
也叫“并不简单的简单适配器”^_^
自定义适配器
2.2 作用
桥梁
展示
3. 高级控件使用步骤
3.1 获取数据
3.2 创建适配器
3.3 绑定适配器
4. 自动提示文本框
4.1 AutoCompleteTextView(单一提示)
android:completionThreshold="1"——设置多少字开始提示,默认为2.
4.2 MultiAutoCompleteTextView(多次提示)--作业
//设置多次提示时,设置分隔符方法
MultiAutoCompleteTextView.Tokenizer t = new MultiAutoCompleteTextView.CommaTokenizer();
mactv_main.setTokenizer(t);
4.3 两种自动提示文本框的异同
AutoCompleteTextView:支持基本的自动完成功能,适用在各种搜索功能中,并且可以根据自己的需求设置他的默认显示数据
代码:
https://blog.csdn.net/waz929/article/details/83502582
MultiAutoCompleteTextView: 可支持选择多个值(在多次输入的情况下),分别用分隔符分开,并且在每个值选中的时候再次输入值时会自动去匹配。
代码:
https://blog.csdn.net/waz929/article/details/83502737
可用在发短信,发邮件时选择联系人这种类型当中。
5. 下拉框
Spinner
package com.example.android_06;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.MultiAutoCompleteTextView;
import android.widget.SimpleAdapter;
import android.widget.Spinner;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class MainActivity extends AppCompatActivity {
// 高级控件下拉框
private List<Option> data2 = new ArrayList<>();
private ArrayAdapter adapter2;
private Spinner spinner_main_img;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
/**
* 高级控件下拉框
*/
// 初始化
loadData2();
adapter2 = new ArrayAdapter(this,R.layout.actv_main_item1,data2);
spinner_main_img.setAdapter(adapter2);
}
/**
* 高级控件下拉框
* 伪造数据
*/
private void loadData2() {
List<Map<String,String>> list=new ArrayList<>();
Map<String,String > map;
for (int i=0;i<6;i++){
map = new HashMap();
map.put("bookId",i+"");
map.put("bookName","傻逼"+i+"号");
list.add(map);
}
for (Map<String, String> map2 : list) {
data2.add(new Option(map2.get("bookId"),map2.get("bookName")));
}
}
/**
* 初始化
*/
public void initView(){
spinner_main_img = findViewById(R.id.spinner_main_img);
}
/**
* 获取下拉框的值
* @param view
*/
public void getContext(View view) {
Option selectedItem = (Option) spinner_main_img.getSelectedItem();
Toast.makeText(this, selectedItem.getValue(), Toast.LENGTH_SHORT).show();
}
class Option {
private String value;
private String html;
public String getValue() {
return value;
}
public String getHtml() {
return html;
}
public void setValue(String value) {
this.value = value;
}
public void setHtml(String html) {
this.html = html;
}
@Override
public String toString() {
return html;
}
public Option(String value, String html) {
this.value = value;
this.html = html;
}
}
}
6.简单控件
下拉框图片加描述