Pessoal, meu autocomplete custom não funciona no Android abaixo do 2.2 ...
Alguem ja passou por isso?
class AutoCompleteItemAdapter extends BaseAdapter implements Filterable {
Context _context;
ArrayList<Ingrediente> lista;
public AutoCompleteItemAdapter(Context _ctx,
ArrayList<Ingrediente> source) {
_context = _ctx;
lista = source;
orig = source;
filter = new IngredienteFilter();
}
@Override
public int getCount() {
if (lista != null)
return lista.size();
else
return 0;
}
@Override
public Object getItem(int position) {
return lista.get(position);
}
@Override
public long getItemId(int position) {
return lista.get(position).getIdIng();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
Ingrediente obj = lista.get(position);
final View view;
final LayoutInflater inflater;
if (convertView == null) {
inflater = (LayoutInflater) _context
.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
view = inflater.inflate(R.layout.autocomplete_item, null);
} else {
view = convertView;
}
TextView txtDescricao = (TextView) view
.findViewById(R.id.txtAutoCompleteItem);
txtDescricao.setText(obj.getNomeIng());
return view;
}
@Override
public Filter getFilter() {
return filter;
}
private IngredienteFilter filter;
ArrayList<Ingrediente> orig;
private class IngredienteFilter extends Filter {
public IngredienteFilter() {
}
@Override
protected FilterResults performFiltering(CharSequence constraint) {
FilterResults oReturn = new FilterResults();
ArrayList<Ingrediente> results = new ArrayList<Ingrediente>();
if (orig == null)
orig = lista;
if (constraint != null && !constraint.equals("")) {
if (orig != null && orig.size() > 0) {
for (Ingrediente g : orig) {
if (g.getNomeIng()
.toUpperCase()
.contains(
constraint.toString().toUpperCase()))
results.add(g);
}
}
oReturn.values = results;
}
return oReturn;
}
@SuppressWarnings("unchecked")
@Override
protected void publishResults(CharSequence constraint,
FilterResults results) {
lista = (ArrayList<Ingrediente>) results.values;
notifyDataSetChanged();
}
}
}
}
Att.
Diego Ampessan Microsoft MTA
www.diegoampessan.com.br
Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seu poder ultrapassa os limites da imaginação - "Albert Einstein "
www.diegoampessan.com.br
Os computadores são incrivelmente rápidos, precisos e burros; Os homens são incrivelmente lentos, imprecisos e brilhantes; Juntos, seu poder ultrapassa os limites da imaginação - "Albert Einstein "
0 comentários:
Postar um comentário