class Pais {
String nome;
int bandeira;
public Pais(String nome, int band){
this.nome=nome;
this.bandeira=band;
}
@Override
public String toString() {
return nome;
}
}
Depois é necessário criar uma classe que extenda ArrayAdapter e sobrescrever seu método getView:
class PaisAdapter extends ArrayAdapter< Pais> {
public PaisAdapter(Context context, int resource, List< Pais> objects) {
super(context, resource, objects);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
LayoutInflater inflater = (LayoutInflater) TesteServiceActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View v = inflater.inflate(R.layout.list_item, null);
ImageView img = ((ImageView) v.findViewById(R.id.imagemmm));
img.setImageDrawable( getResources().getDrawable(getItem(position).bandeira) );
TextView txt = ((TextView) v.findViewById(R.id.ronaldo));
txt.setText(getItem(position).nome);
return v;
}
}
Por último, o método OnCreate da sua activity:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//Pega o AutoCompleteTextView
AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);
//Cria uma Lista de objetos Pais
List< Pais> paises = new ArrayList< TesteServiceActivity.Pais>();
paises.add(new Pais("Argentina", R.drawable.argentina));
paises.add(new Pais("Paraguai", R.drawable.paraguai));
paises.add(new Pais("Argélia", R.drawable.uruguai));
//Instancia o PaisAdapter
PaisAdapter adapter = new PaisAdapter(this, R.layout.list_item, paises);
textView.setAdapter(adapter);
}
Screenshots:

Não funciona no meu. Ele diz: No enclosing instance of the type MainActivity is accessible in scope
ResponderExcluirComo fazer para consertar isso?
Ele não reconhece de jeito nenhum a linha:
ResponderExcluirLayoutInflater inflater = (LayoutInflater) MainActivity.this.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
Amigo, troque a "MainActivity" pela sua própria Activity. "MainActivity" é a activity usada no meu projeto =)
ExcluirNo seu ta teste alguma coisa, no meu ta mainactivity. Mas ele não reconhece...
Excluirvocê criou todas as classes dentro da sua Activity? Ou em classes separadas dentro do mesmo pacote?
ExcluirNo meu teste o PaisAdapter está dentro do escopo da "TesteAcitivity" (no seu caso, MainActivity).
ExcluirMuito bom exemplo. Parabéns.
ResponderExcluir