Android中AutoCompleteTextView的特殊使用方法
原帖地址:http://blog.sina.com.cn/s/blog_54109a5801012pmi.html
AutoCompleteTextView是自动完成输入内容控件
其常用属性定义如下
<AutoCompleteTextViewandroid:id="@+id/mp002_top_place_input"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:completionThreshold="1"
android:layout_marginTop="5dp" >
</AutoCompleteTextView>
其中android:completionThreshold定义了从第几个字符开始显示候补列表
默认值为2
使用例:
AutoCompleteTextView mPlace = (AutoCompleteTextView)findViewById(R.id.mp002_top_place_input);
ArrayList<String> result = new ArrayList<String>();
result.add("1111111");
result.add("1222222");
mPlace.setAdapter(new ArrayAdapter<String>(
MP002TopActivity.this,
android.R.layout.simple_dropdown_item_1line,
result)
);
局限性是completionThreshold设定的最小值是1
小于1的情况下,会默认变成1。
所以要在不输入任何字符的条件下显示候补列表
就必须重载AutoCompleteTextView这个控件。
public class MyAutoCompleteTextView extends AutoCompleteTextView{
public MyAutoCompleteTextView(Context context) {
super(context);
}
public MyAutoCompleteTextView(Context context, AttributeSet attrs) {
super(context, attrs);
}
public MyAutoCompleteTextView(Context context, AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@Override
public boolean enoughToFilter() {
return true;
}
@Override
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
super.onFocusChanged(focused, direction, previouslyFocusedRect);
performFiltering(getText(), KeyEvent.KEYCODE_UNKNOWN);
}
}
enoughToFilter()是判断输入文字列长度是否满足现实候补列表的要求的方法。
onFocusChanged()是当控件获得焦点时让其显示候补列表。
更多相关文章
- android 圆形头像—— android开源系列:CircleImageView自定义圆
- android中列表选项、单选选项、多选选项对话框的使用
- TableLayout
- Android(安卓)ImageView控件的MaxWidth、MaxHeight不起作用
- android半透明activity设置
- 高级控件1
- Android点击水波纹效果
- Android列表控件Spinner简单用法示例
- Android--取得控件在手机屏幕上的位置