Android中AutoCompleteTextView的特殊使用方法
原帖地址:http://blog.sina.com.cn/s/blog_54109a5801012pmi.html
AutoCompleteTextView是自動完成輸入內容控件
其常用屬性定義如下
<AutoCompleteTextView? ? ? android: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中AutoCompleteTextView的特殊使用方法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Android Fragments 详细
- 下一篇: Android之开发性能优化简介