自动提示框、下拉框都用到了适配器

一、自动文本框提示框

AutoCompleteTextView(单一提示),MultiAutoCompleteTextView(多次提示)共有一个android:completionThreshold="1",这是指输出的文字为几个; Tokenizer t = new MultiAutoCompleteTextView.CommaTokenizer();
      mactv_main.setTokenizer(t);是MultiAutoCompleteTextView的分隔符方法

二、两种自动提示文本框的异同
      AutoCompleteTextView:支持基本的自动完成功能,适用在各种搜索功能中,并且可以根据自己的需求设置他的默认显示数据
      MultiAutoCompleteTextView: 可支持选择多个值(在多次输入的情况下),分别用分隔符分开,并且在每个值选中的时候再次输入值时会自动去匹配。
      可用在发短信,发邮件时选择联系人这种类型当中。

适配器分为简单适配器(SimpleAdapter)和数组适配器(ArrayAdapter)

分为三个步骤:

1.获取数据,2.创建适配器3.绑定适配器

以下用适配器做AutoCompleteTextView为例子:

 <AutoCompleteTextView
        android:id="@+id/act_main_act1"
        android:layout_width="match_parent"
        android:layout_height="60dp"
        android:completionThreshold="1"/>
public class MainActivity extends AppCompatActivity {
    //自动提示框
    private String[] datal;
    private ArrayAdapter<String> adapter;//适配器
    private AutoCompleteTextView act_main_act1;
  protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    act_main_act1  = this.findViewById(R.id.act_main_act1);

//3.1 获取数据
        datal = new String[]{ "愤怒的小鸟", "汤姆猫", "落汤鸡", "牛牛", "哈巴狗", "神龙", "烤鸭",
                "小象", "美人鱼", "九尾狐" };

//        3.2 创建适配器:适配器需要通过上下文和哪一个项资源文件解析成一个视图,将数据绑定到视图,最终显示数据
        adapter = new ArrayAdapter<String>(this,R.layout.act_main_item1,datal);
//        3.3 绑定适配器
        act_main_act1.setAdapter(adapter);

 三、下拉框Spinner

同样要使用要以上示例的适配器,同样的方法就ok了,很方便哦。

sp_main_sp1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                Option selectedItem = (Option) parent.getSelectedItem();
                Toast.makeText(MainActivity.this,selectedItem.getHtml(),Toast.LENGTH_LONG).show();
            }

            @Override
            public void onNothingSelected(AdapterView<?> parent) {

            }
        });

以上是一个事件监听 ,点击下拉框的值时会获取该值。

若下拉框要带图片的话用简单适配器方便些,只在创建适配器时不一样,

扫描二维码关注公众号,回复: 3585471 查看本文章
adapter3 = new SimpleAdapter(this,data3,R.layout.sp_main_item2,new String[]{"name","image"},new int[]{R.id.tv_main_tv,R.id.iv_main_item_iv});

 注意参数的使用。

注意:适配器的类型要和数据的一致。

猜你喜欢

转载自blog.csdn.net/oydl_1234/article/details/82708103