通过AutoCompleteTextView可以:
- 实现类似于热门提示的效果。
- 使用的方式类似于适配器的实现。
AutoCompleteTextView的一些常用属性:
android:completionHint | 设置出现在下拉菜单中的提示标题 |
android:completionThreshold | 设置用户至少输入多少个字符才会显示提示 |
android:dropDownHorizontalOffset | 下拉菜单于文本框之间的水平偏移 |
android:dropDownHeight | 下拉菜单的高度 |
android:dropDownWidth | 下拉菜单的宽度 |
android:singleLine | 单行显示 |
代码实现:
首先我们在xml文件中定义AutoCompleteTextView
activity_main.xml
<AutoCompleteTextView
android:id="@+id/auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:completionHint="请输入"
android:completionThreshold="1"/>
接下来便来编写我们的MainActivity.java
MainActivity.java
public class MainActivity extends AppCompatActivity {
private AutoCompleteTextView auto;
private ArrayAdapter<String> adapter;
private String[] tips = {"a1","a2","a3","aa1","b1","c1"};//提示区所显示的内容
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
auto = (AutoCompleteTextView) findViewById(R.id.auto);
adapter = new ArrayAdapter<String>(this,R.layout.adapter_item,tips);
//设置适配器
auto.setAdapter(adapter);
}
}
主函数中我们需要布局文件adapter_item.xml,接下来我们设置一下这个布局文件。在该布局文件中我们只需要设置一个TextView即可。
adapter_item.xml
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/item_tv"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="显示"
android:textSize="20sp"
android:padding="5dp"/>
在这里我们一定要注意,TextView为根标签,将LinearLayout根标签删除,否则会报错。
运行结果:
大功告成,当然我们也可以在AutoCompleteTextView中通过设置它的一些属性来改变结果。