Saltar al contenido

Usando Android AutoCompleteTextView con ArrayAdapter en lugar de ArrayAdapter

Necesitamos tu apoyo para difundir nuestras reseñas sobre las ciencias informáticas.

Solución:

Dos caminos:

  1. Anular toString() en Student clase y hacer que regrese name. Puede obtener el objeto que se seleccionó con el siguiente código:

     public static class Student 
    
        private String name;
    
            public Student(String name) 
                this.name = name;
            
    
            @Override
            public String toString() 
                return name;
            
    
        
    
    AutoCompleteTextView tv = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1);
    final ArrayList list = new ArrayList();
    list.add(new Student("Viru"));
    list.add(new Student("Gauti"));
    ArrayAdapter adapter = new ArrayAdapter(
            this, android.R.layout.simple_dropdown_item_1line, list);
    tv.setAdapter(adapter);
    
    tv.setOnItemClickListener(new OnItemClickListener() 
    
        @Override
        public void onItemClick(AdapterView arg0, View arg1, int arg2,
                long arg3) 
            Student selected = (Student) arg0.getAdapter().getItem(arg2);
            Toast.makeText(MainActivity.this,
                    "Clicked " + arg2 + " name: " + selected.name,
                    Toast.LENGTH_SHORT).show();
        
    );
    
  2. Implementar un adaptador personalizado (extendiendo BaseAdapter clase o ArrayAdapter clase) Consulte este tutorial: http://www.ezzylearning.com/tutorial.aspx?tid=1763429

Puedes usar un AbstractList para obtener el String representación de cada elemento en su lista de objetos.

private void setupAutoComplete(AutoCompleteTextView view, List objects) 
    List names = new AbstractList() 
        @Override
        public int size()  return objects.size(); 

        @Override
        public String get(int location) 
            return objects.get(location).getName();
        
    ;

    view.setAdapter(new ArrayAdapter(this, android.R.layout.simple_list_item_1, names));

Comentarios y valoraciones de la guía

Puedes añadir valor a nuestra información participando con tu experiencia en las interpretaciones.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *