Tecnologia do Blogger.
RSS

[androidbrasil-dev] AutoComplete Custom

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 "

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário