读书人

一步一步学android控件(之6) M

发布时间: 2013-11-01 14:43:02 作者: rapoo

一步一步学android控件(之六) —— MultiAutoCompleteTextView

今天学习的控件是MultiAutoCompleteTextView 。 提到MultiAutoCompleteTextView 我们就自然而然地想到AutoCompleteTextView ,就想知道他们之间到底有什么区别。在讲他们区别之前呢先来看看下面两张图片:

一步一步学android控件(之6) —— MultiAutoCompleteTextView 一步一步学android控件(之6) —— MultiAutoCompleteTextView

(图1)AutoCompleteTextView (图2)MultiAutoCompleteTextView

这两张图片中使用的都是同样的Adapter , 然而在图1中输入图2中的内容时却得不到任何内容,为什么?

先从他们的关系上说说, MultiAutoCompleteTextView 继承自AutoCompleteTextView(废话 ... ) , 在使用上多了一个Tokenizer —— 在图2中,这个Tokenizer就是符号 ‘ , ’ ,当遇到这个符号时会根据光标的位置计算当前关注的信息。如:如果光标在 d 的位置,则 ‘ , ’之前的字串有效;如果光标在 g 位置,则 ‘ , ’ 后面的字串有效;另外如果光标前后都有符号‘ , ’ , 则在两个 ‘ , ’ 中的内容有效。对于这段解释,下面的代码获取更具说服力:

private void handleItemClicked(int action) {        Intent intent = new Intent();        switch (action) {        case ViewData.TEXT_VIEW_ID:            intent.setClass(mContext, WidgetTextView.class);            mContext.startActivity(intent);            break;        case ViewData.BUTTON_ID:            intent.setClass(mContext, WidgetButtonActivity.class);            mContext.startActivity(intent);            break;        case ViewData.EDIT_TEXT_ID:            intent.setClass(mContext, WidgetEditTextActivity.class);            mContext.startActivity(intent);            break;        case ViewData.AUTO_COMPLETE_TEXTVIEW_ID:            intent.setClass(mContext, WidgetAutoCompleteActivity.class);            mContext.startActivity(intent);            break;        case ViewData.MULTI_AUTO_COMPLETE_TEXTVIEW_ID:            intent.setClass(mContext, WidgetMultiAutoCompleteActivity.class);            mContext.startActivity(intent);            break;        }    }

MultiAutoCompleteTextView 就介绍到这里了,下一个控件 Toast 。



读书人网 >Android

热点推荐