Android中AutoCompleteTextView的特殊使用方法
原帖地址:http://blog.sina.com.cn/s/blog_54109a5801012pmi.html
AutoCompleteTextView是自動(dòng)完成輸入內(nèi)容控件
其常用屬性定義如下
<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定義了從第幾個(gè)字符開(kāi)始顯示候補(bǔ)列表
默認(rèn)值為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設(shè)定的最小值是1
小于1的情況下,會(huì)默認(rèn)變成1。
?
所以要在不輸入任何字符的條件下顯示候補(bǔ)列表
就必須重載AutoCompleteTextView這個(gè)控件。
?
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()是判斷輸入文字列長(zhǎng)度是否滿足現(xiàn)實(shí)候補(bǔ)列表的要求的方法。
onFocusChanged()是當(dāng)控件獲得焦點(diǎn)時(shí)讓其顯示候補(bǔ)列表。
?
總結(jié)
以上是生活随笔為你收集整理的Android中AutoCompleteTextView的特殊使用方法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Android Fragments 详细
- 下一篇: Android之开发性能优化简介