Android中AutoCompleteTextView的…
来源:互联网 发布:数据库第五版答案 编辑:程序博客网 时间:2024/05/22 01:30
将拼音中带有h的自动补全:
思路;1:添加一个AutoCompleteTextView组件
注意:主要要学会字节编写适配器,设置适合自己的过滤器,这里主要写一下适配器代码,主代码已用蓝色标记
List list = new ArrayList<>();
list.add("北京");
PinyinAdapter adapter = new PinyinAdapter(this, list);
AutoCompleteTextView auto = (AutoCompleteTextView) findViewById(R.id.main_auto);
auto.setAdapter(adapter);
适配器代码:
public class PinyinAdapter extends BaseAdapter implements Filterable {
private Context context;
private List list;
private List backup;
private Filter filter;
public PinyinAdapter(Context context, List list) {
this.context = context;
this.list = list;
}
@Override
public int getCount() {
return list.size();
}
@Override
public Object getItem(int position) {
return list.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
if (convertView == null) {
convertView = new TextView(context);
}
((TextView) convertView).setText(list.get(position));
return convertView;
}
@Override
public Filter getFilter() {
if (filter == null) {
filter = new PinyinFilter();
}
return filter;
}
private class PinyinFilter extends Filter{
@Override
protected FilterResults performFiltering(CharSequence constraint) {
if (backup == null) {
backup = new ArrayList<>(list);
}
FilterResults results = new FilterResults();
if (!TextUtils.isEmpty(constraint)) {
List strings = new ArrayList<>();
for (String str : backup) {
try {
String pinyin = PinyinHelper.convertToPinyinString(str, "", PinyinFormat.WITHOUT_TONE);
if (pinyin.contains(constraint)) {
strings.add(str);
} else {
String shortPinyin = PinyinHelper.getShortPinyin(str);
if (shortPinyin.startsWith(constraint.toString())) {
strings.add(str);
}
}
} catch (PinyinException e) {
e.printStackTrace();
}
}
results.count = strings.size();
results.values = strings;
} else {
results.count = 0;
results.values = new ArrayList<>();
}
return results;
}
@Override
protected void publishResults(CharSequence constraint, FilterResults results) {
list.clear();
list.addAll((Collection
0 0
- Android中AutoCompleteTextView的…
- Android中AutoCompleteTextView的使用方法
- Android中AutoCompleteTextView的使用
- Android中AutoCompleteTextView的用法
- Android中AutoCompleteTextView的特殊使用方法
- android 中 <AutoCompleteTextView>标签的使用
- Android中AutoCompleteTextView控件的使用
- android开发中AutoCompleteTextView的使用方法
- android中AutoCompleteTextView和MultiAutoCompleteTextView的用法
- Android中,AutoCompleteTextView属性
- Android AutoCompleteTextView的使用
- Android AutoCompleteTextView 的使用
- android的AutoCompleteTextView
- android中巧妙更改spinner、AutoCompleteTextView分割线的颜色值(spinner AutoCompleteTextView divider color)
- android中巧妙更改spinner、AutoCompleteTextView分割线的颜色值(spinner AutoCompleteTextView divider color)
- Android中可下拉选择的AutoCompleteTextView的使用
- Android中智能控件AutoCompleteTextView
- Android中如何使用AutoCompleteTextView
- 在Unity快速修改方向控制键位
- 利用URL下载
- Andriod Studio中出现找不到…
- Android中RadioButton的使用
- Android中Spinner的使用
- Android中AutoCompleteTextView的…
- Invariant Violation:Application 项目名 has not been registered.
- Android中Dialog的使用
- source_Insight新建工程
- Android中日期和时间的使用
- Android中Handler的使用
- Android中AsyncTask的讲解(动态下…
- 如何解决Andoroid Studio出现…
- Android Studio如何配置夜神模拟器