自动完成文本框
1.作用:当用户输入一定字符后,自动完成框会显示一个下拉菜单,用户选择后自动填写该文本框
XML属性
XML属性 | 作用 |
---|---|
completionHint | 设置出现在下拉菜单中的提示标题 |
completionThreshold | 设置用户至少输入几个字符才会显示提示,默认为2 |
dropDrownHeight | 设置下拉菜单的高度 |
dropDrownHorizationOffset | 设置下拉菜单与文本之间的水平偏移,下拉菜单默认与文本框左对齐 |
dropDrownVerticalOffset | 设置下拉菜单与文本之间的垂直偏移,下拉菜单默认紧跟文本框 |
dropDrownWidth | 设置下拉菜单的宽度 |
popupBackGround | 设置下拉菜单的北京 |
ems | 设置输入字符的长度,超出部分不显示 |
常用方法
方法 | 作用 |
---|---|
public void clearListSelection () | 清楚所有的下拉列表项 |
public ListAdapter getAdapter() | 取得数据源 |
public setAdapter(T adapter) | 设置数据源 |
public void setonClickListener(View.OnClickListener Listener) | 设置单击事件监听器 |
public void setOnItemClickListener (AdapterView.OnItemClickListener l) | 设置选项单击事件监听器 |
public void setOnItemSelectedListener (AdapterView.OnItemSelectedListener l) | 设置选项选中时的单击事件监听器 |
ArrayAdapter参数的理解
-
适配器的作用是数据和视图之间的桥梁
-
要显示一个数组,我们就用ArrayAdapter,数组适配器,数据的数据类型<>是String类型的,数据的数据类型还可以是其他的包括对象类。
-
ArrayAdapter arrayAdapter = new ArrayAdapter( ArrayListDemo.this, android.R.layout.simple_list_item_1, adapterData);
这段代码是创建一个数组适配器的代码,里面有三个参数,第一个参数是上下文,就是当前的Activity, 第二个参数是android sdk中自己内置的一个布局,它里面只有一个TextView,这个参数是表明我们数组中每一条数据的布局是这个view,就是将每一条数据都显示在这个view上面;第三个参数就是我们要显示的数据。listView会根据这三个参数,遍历adapterData里面的每一条数据,读出一条,显示到第二个参数对应的布局中,这样就形成了我们看到的listView.
实例:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_width="fill_parent"
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent"
android:gravity="center_horizontal"
android:orientation="horizontal">
<AutoCompleteTextView //创建AutoCompleteTextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="5"
android:id="@+id/searchAV"
android:completionHint="请输入搜索内容" //提示标题
android:completionThreshold="1" //提示最少字符
/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/searchBT"
android:text="搜索"/>
</LinearLayout>
package com.example.a4_8;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.AutoCompleteTextView;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends AppCompatActivity {
private final String[] DATA={"T天猫,T天津技术学院,T天天向上,T天津,T天津小吃,M美丽天津,"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final AutoCompleteTextView searchAV=(AutoCompleteTextView) findViewById(R.id.searchAV);
ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,DATA);//定义数据源码
searchAV.setAdapter(adapter);
Button searchBT=(Button) findViewById(R.id.searchBT);
searchBT.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this,searchAV.
getText().toString(),Toast.LENGTH_SHORT).show();
}
});
}
}