Most visited

Recently visited

Added in API level 1

MultiAutoCompleteTextView

public class MultiAutoCompleteTextView
extends AutoCompleteTextView

java.lang.Object
   ↳ android.view.View
     ↳ android.widget.TextView
       ↳ android.widget.EditText
         ↳ android.widget.AutoCompleteTextView
           ↳ android.widget.MultiAutoCompleteTextView
Known Direct Subclasses


一个可编辑的文本视图,扩展 AutoCompleteTextView ,它可以显示用户输入的文本的子字符串的完成建议,而不是必须为整个事情。

您必须提供 MultiAutoCompleteTextView.Tokenizer以区分各种子字符串。

以下代码片段显示了如何创建一个文本视图,该视图在用户输入时显示各个国家/地区的名称:

 public class CountriesActivity extends Activity {
     protected void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.autocomplete_7);

         ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
                 android.R.layout.simple_dropdown_item_1line, COUNTRIES);
         MultiAutoCompleteTextView textView = (MultiAutoCompleteTextView) findViewById(R.id.edit);
         textView.setAdapter(adapter);
         textView.setTokenizer(new MultiAutoCompleteTextView.CommaTokenizer());
     }

     private static final String[] COUNTRIES = new String[] {
         "Belgium", "France", "Italy", "Germany", "Spain"
     };
 }

Summary

Nested classes

class MultiAutoCompleteTextView.CommaTokenizer

这个简单的Tokenizer可以用于用逗号和一个或多个空格分隔项目的列表。

interface MultiAutoCompleteTextView.Tokenizer

 

Inherited XML attributes

From class android.widget.AutoCompleteTextView
From class android.widget.TextView
From class android.view.View

Inherited constants

From class android.view.View

Inherited fields

From class android.view.View

Public constructors

MultiAutoCompleteTextView(Context context)
MultiAutoCompleteTextView(Context context, AttributeSet attrs)
MultiAutoCompleteTextView(Context context, AttributeSet attrs, int defStyleAttr)
MultiAutoCompleteTextView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes)

Public methods

boolean enoughToFilter()

只有当文本的总长度超过阈值时,才会过滤该子类,而不仅仅在 findTokenStart(CharSequence, int)getSelectionEnd()范围内的长度满足或超过 getThreshold()

CharSequence getAccessibilityClassName()

返回此对象的类名称以用于辅助功能。

void performValidation()

该子类方法不是验证整个文本,而是单独验证文本的每个标记。

void setTokenizer(MultiAutoCompleteTextView.Tokenizer t)

设置将用于确定用户正在键入的文本的相关范围的Tokenizer。

Protected methods

void performFiltering(CharSequence text, int keyCode)

如果该范围的长度满足或超过 getThreshold() ,则此子类方法将过滤从 findTokenStart(CharSequence, int)getSelectionEnd()的范围,而不是对编辑框的整个内容进行过滤。

void performFiltering(CharSequence text, int start, int end, int keyCode)

开始过滤下拉列表的内容。

void replaceText(CharSequence text)

执行通过替换范围从文本完成 findTokenStart(CharSequence, int)getSelectionEnd()通过传递的结果 text通过 terminateToken(CharSequence)

Inherited methods

From class android.widget.AutoCompleteTextView
From class android.widget.EditText
From class android.widget.TextView
From class android.view.View
From class java.lang.Object
From interface android.widget.Filter.FilterListener
From interface android.view.ViewTreeObserver.OnPreDrawListener
From interface android.graphics.drawable.Drawable.Callback
From interface android.view.KeyEvent.Callback
From interface android.view.accessibility.AccessibilityEventSource

Public constructors

MultiAutoCompleteTextView

Added in API level 1
MultiAutoCompleteTextView (Context context)

Parameters
context Context

MultiAutoCompleteTextView

Added in API level 1
MultiAutoCompleteTextView (Context context, 
                AttributeSet attrs)

Parameters
context Context
attrs AttributeSet

MultiAutoCompleteTextView

Added in API level 1
MultiAutoCompleteTextView (Context context, 
                AttributeSet attrs, 
                int defStyleAttr)

Parameters
context Context
attrs AttributeSet
defStyleAttr int

MultiAutoCompleteTextView

Added in API level 21
MultiAutoCompleteTextView (Context context, 
                AttributeSet attrs, 
                int defStyleAttr, 
                int defStyleRes)

Parameters
context Context
attrs AttributeSet
defStyleAttr int
defStyleRes int

Public methods

enoughToFilter

Added in API level 1
boolean enoughToFilter ()

只有在文本的总长度超过阈值时才进行过滤,而不是在从 findTokenStart(CharSequence, int)getSelectionEnd()的范围的长度满足或超过 getThreshold()过滤该子类。

Returns
boolean

getAccessibilityClassName

Added in API level 23
CharSequence getAccessibilityClassName ()

返回此对象的类名称以用于辅助功能。 如果子类正在实现的东西应该被视为一个全新的视图类,当它被可访问性使用时,子类只应该覆盖这个子类,与它所源自的类无关。 这用于填写AccessibilityNodeInfo.setClassName

Returns
CharSequence

performValidation

Added in API level 1
void performValidation ()

该子类方法不是验证整个文本,而是单独验证文本的每个标记。 空令牌被删除。

setTokenizer

Added in API level 1
void setTokenizer (MultiAutoCompleteTextView.Tokenizer t)

设置将用于确定用户正在键入的文本的相关范围的Tokenizer。

Parameters
t MultiAutoCompleteTextView.Tokenizer

Protected methods

performFiltering

Added in API level 1
void performFiltering (CharSequence text, 
                int keyCode)

如果该范围的长度满足或超过 getThreshold() ,则此子类方法将过滤从 findTokenStart(CharSequence, int)getSelectionEnd()的范围,而不是对编辑框的整个内容进行过滤。

Parameters
text CharSequence: the filtering pattern
keyCode int: the last character inserted in the edit box; beware that this will be null when text is being added through a soft input method.

performFiltering

Added in API level 1
void performFiltering (CharSequence text, 
                int start, 
                int end, 
                int keyCode)

开始过滤下拉列表的内容。 过滤模式是编辑框中指定的文本范围。 子类可以重写此方法以使用不同的模式进行过滤,例如text的较小子字符串。

Parameters
text CharSequence
start int
end int
keyCode int

replaceText

Added in API level 1
void replaceText (CharSequence text)

执行通过替换范围从文本完成findTokenStart(CharSequence, int)getSelectionEnd()通过传递的结果text通过terminateToken(CharSequence) 另外,被替换的区域将被标记为自动图文集(AutoText)替换,以便如果用户立即按下DEL,则完成将被撤消。 子类可以重写此方法,以将内容插入到编辑框中。

Parameters
text CharSequence: the selected suggestion in the drop down list

Hooray!