AutoCompleteTextView
[功能]
默认的AutoCompleteTextView是不支持数据更新的 即 开始数据必须已经放入 静态数组String[]
[代码 步骤]
1. 构建布局 只有2个View: AutoCompleteTextView Button
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="wrap_content">
<AutoCompleteTextView
android:id="@+id/edit"
android:layout_width="wrap_content"
android:layout_height="wrap_content"/>
<Button
android:id="@+id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Create new"/>
</LinearLayout>
2. 定义默认数组
String[] city = {
"shanghai","beijing","tianjing","wuhan","sichuan"
};
3. View 初始化
public void intialView(){
adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, city);
autoview = (AutoCompleteTextView) findViewById(R.id.edit);
autoview.setWidth(200);
autoview.setAdapter(adapter);
}
4. AutoCompleteTextView 默认是:当输入2个字符以上 才会提示的 这是可以设定的 现在要求 1 个字符 就自动提示
//default=2
autoview.setThreshold(1);
5. 如何添加新的匹配字串
Button btn = (Button)findViewById(R.id.button);
btn.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
// TODO Auto-generated method stub
//得到 AutoCompleteTextView 的 内容
String string = autoview.getText().toString();
//把 目标字串 放入 ArrayAdapter<String> 中
adapter.add(string);
}
});
6. 看看emulator 的运行效果
* 默认以 "s" 开头的只有 2 个 即:
"shanghai", "sichuan" 即:
* 添加以后 再 列出以 "s" 开头的匹配字串
分享到:
相关推荐
描述中提到“扩展Android系统自带的AutoCompleteTextView控件,逐字提示,支持自定义类对象指定显示字段”,这进一步明确了自定义的两个关键特性:逐字提示和自定义数据模型。 1. **逐字提示**:在默认的`...
此外,AutoCompleteTextView还支持多种样式和行为定制,如设置下拉菜单的样式、选择项的点击监听、是否显示下拉箭头图标等。例如: ```java textView.setDropDownBackgroundResource(R.color.dropdown_background);...
通过以上步骤,我们就可以实现一个支持汉字和拼音查询的`AutoCompleteTextView`。`CityAdapter.java`中的具体实现细节,包括如何处理拼音、如何过滤和显示建议,都需要查看源代码才能详细分析。在实际开发中,可能还...
6. **显示提示列表**:当找到匹配的词汇时,适配器会更新其数据集,`AutoCompleteTextView`会自动显示下拉的提示列表。用户可以选择列表中的一个选项,或者继续输入。 7. **优化性能**:由于拼音转换可能涉及大量...
1. 过滤器:AutoCompleteTextView支持过滤器,可以根据用户的输入动态过滤建议列表。可以通过实现Filterable接口来自定义过滤逻辑。 2. 最小字符数触发:通过设置`setThreshold(int threshold)`方法,可以设置用户...
// 更新适配器的数据并通知数据改变 } }); ``` ### 7. 动画效果 AutoCompleteTextView还支持动画效果,例如下拉菜单的展开和收缩动画。通过`setDropDownAnimationStyle()`可以设置动画样式。 ### 8. 键盘过滤 ...
AutoCompleteTextView还支持过滤器(Filter)机制,允许你对数据源进行更复杂的过滤操作。此外,还可以通过设置`dropDownWidth`属性来调整下拉列表的宽度,或者使用`setDropDownAnchor()`来指定下拉列表相对于哪个...
2. **创建数据源**:数据源可以是数组、列表或者其他适配器支持的数据结构。通常我们会使用ArrayAdapter来绑定数据到AutoCompleteTextView。 ```java String[] items = {"苹果", "香蕉", "橙子", "葡萄"}; ...
当用户从下拉列表中选择一个条目时,可以监听ListView的`.setOnItemClickListener()`事件,然后根据选中的位置获取对应的数据,并更新AutoCompleteTextView的内容。 8. **性能优化** 如果数据集较大,为避免影响...
本篇文章将深入探讨如何实现一个能够处理汉字拼音首字母,并且支持多音字的AutoCompleteTextView过滤提示功能。 首先,我们要了解多音字的概念。在中文里,有些字有多个读音,例如“还”可以读作“hái”或“huán...
`AutoCompleteTextView` 还支持许多其他特性,例如设置过滤器来定制匹配逻辑,设置最小输入字符数触发补全,以及自定义提示文本等。此外,可以通过监听 `OnItemClickListener` 或 `OnItemSelectedListener` 事件来...
当用户在输入框中键入文字时,`AutoCompleteTextView`可以根据已有的数据源提供匹配建议,通常用于搜索框、地址输入等场景。 ### 1. AutoCompleteTextView基本结构 `AutoCompleteTextView`继承自`EditText`,所以...
BaseAdapter是Android中用于数据适配的基类,它可以被子类化以支持各种视图控件的数据绑定,包括ListView、Spinner以及我们的AutoCompleteTextView。 在AutoCompleteTextView的基本使用中,我们需要创建一个适配器...
- `AutoCompleteTextView`支持多选:通过`MultiAutoCompleteTextView`,可以允许用户选择多个建议项。 - 可以通过`setError()`方法设置错误提示,提高用户交互体验。 - `AutoCompleteTextView`还提供了诸如禁用、...
9. **多选支持**:虽然默认情况下AutoCompleteTextView只支持单个建议项的选择,但通过组合使用其他控件和适配器,可以实现多选功能。 在实际开发中,`AutoCompleteTextViewDemo`可能是一个包含示例代码的项目,它...
此外,`AutoCompleteTextView`还支持过滤器(Filter)机制,允许开发者根据输入内容动态过滤数据源。适配器中的`getFilter()`方法返回一个`Filter`对象,可以通过重写`performFiltering(CharSequence constraint)`和...
6. **过滤逻辑**:适配器还支持自定义过滤逻辑,以控制哪些数据项应该显示在下拉列表中: ```java adapter.setFilterable(new Filter() { @Override protected FilterResults performFiltering(CharSequence ...
在实际应用中,你需要为AutoCompleteTextView提供数据源。这通常通过实现`ArrayAdapter`或者自定义`Adapter`来完成。以下是一个简单的例子: ```java // 定义数据源 String[] countries = {"jb51", "jb51我们", "jb...
3. **TextWatcher**:由于`AutoCompleteTextView`不直接支持选择事件监听,我们需要通过注册`TextWatcher`来监听文本的变化。`TextWatcher`有三个方法:`beforeTextChanged()`, `onTextChanged()`, 和 `...