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