AppCompatAutoCompleteTextView简单的学习使用总结
本文主要实现当获取到焦点的时候弹出下拉列表信息,适合场景为常用事项选择清单,主要原理就是根据焦点监听事件判断,当获取到焦点调用showDropDown方法弹出下拉列表:
- AppCompatAutoCompleteTextView
- showDropDown()
主要代码清单如下:
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.AppCompatAutoCompleteTextView;
import android.view.View;
import android.widget.ArrayAdapter;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends AppCompatActivity {
private AppCompatAutoCompleteTextView maAutoTextNew;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
findViews();
initViews();
}
private void findViews() {
maAutoTextNew = findViewById(R.id.ma_auto_text_new);
}
private void initViews() {
List<String> list = new ArrayList<>();
list.add("TEST1");
list.add("TEST2");
list.add("TEST3");
list.add("TEST4");
maAutoTextNew.setAdapter(new ArrayAdapter<>(this, android.R.layout.simple_dropdown_item_1line, list));
maAutoTextNew.setOnFocusChangeListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
//获取焦点显示下拉
AppCompatAutoCompleteTextView autoCompleteTextView = (AppCompatAutoCompleteTextView) v;
if (hasFocus) {
autoCompleteTextView.showDropDown();
}
}
});
}
}
布局文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="vertical"
tools:context="com.hb.selfcompletetextview.MainActivity">
<android.support.v7.widget.AppCompatAutoCompleteTextView
android:id="@+id/ma_auto_text_new"
android:layout_width="match_parent"
android:layout_height="wrap_content" />
</LinearLayout>