我为edittext添加了一个文本监视器,并为其分配了一个自定义适配器,并实现了可过滤的接口。 因此,当我输入edittext时,会弹出一个列表,其中包含匹配的值。它运作良好。 现在在这个列表中,我想基于逻辑突出显示/显示不同颜色的某些行。 逻辑是特定于应用程序的。例如,如果该项目有一个数字,那么该项目是蓝色的。我怎么能这样做。
adapter = new
ContactsAutoCompleteAdapter(this,
android.R.layout.simple_dropdown_item_1line);
editText.setAdapter(adapter);
我添加了
@Override
public void addTextChangedListener(TextWatcher watcher) {
super.addTextChangedListener(watcher);
adapter.getFilter().filter(watcher.toString());
}
适配器是
private class ContactsAutoCompleteAdapter extends ArrayAdapter<String>
implements Filterable {
private ArrayList<String> resultList;
public ContactsAutoCompleteAdapter(Context context,
int textViewResourceId) {
super(context, textViewResourceId);
}
@Override
public int getCount() {
return resultList.size();
}
@Override
public String getItem(int index) {
return resultList.get(index);
}
@Override
public Filter getFilter() {
Filter filter = new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults filterResults = new FilterResults();
if (constraint != null && semp.currentAcct.iProvider == Constants.PROVIDER_EXCHANGE) {
// Retrieve the autocomplete results.
resultList = autocomplete(constraint.toString()); // this will get the list of items
// Assign the data to the FilterResults
filterResults.values = resultList;
filterResults.count = resultList.size();
}
return filterResults;
}
@Override
protected void publishResults(CharSequence constraint,
FilterResults results) {
if (results != null && results.count > 0) {
notifyDataSetChanged();
} else {
notifyDataSetInvalidated();
}
}
};
return filter;
}
}
请帮助
答案 0 :(得分:0)
我必须覆盖我的数组适配器的getview并在那里添加逻辑。