Atom Blog

Como alternar los colores de fondo en las filas de una lista (ListView) en Android



Cuando definimos listas en Android es muy comun encontrarnos con el problema de que los datos estan un poco desordenados y no se aprecian correctamente como deberian. Es por ello que algunos desarrolladores optan por colocar colores de fondo alternados a la lista para que la informacion se pueda apreciar de mejor manera.

Primero tendremos que definir la lista (ListView) en la interfaz de usuario .xml. Definiremos el archivo prueba.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent"
    android:background="@color/white">

<ListView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/list_view_prueba"
 />

</LinearLayout>

Ahora en la clase respectiva se procede a instanciar la lista de la siguiente manera:

ListView listaPrueba = (ListView) findById(R.id.list_view_prueba);

Luego dentro del evento onCreate se realiza la colocacion de los colores de fondo de manera alternada:

protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.prueba);

        ListAdapter adaptador1 = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, arrayItems){
                @Override
                public View getView(int position, View convertView, ViewGroup parent) {
                     View view = super.getView(position,convertView,parent);
                    if (position %2 == 1) {
                        view.setBackgroundColor(Color.parseColor("#26CCCCCC"));
                    } else {
                        view.setBackgroundColor(Color.parseColor("#00FFFFFF"));
                    }
                    return view;
                }
            };
           listaPrueba.setAdapter(adaptador1);

}


donde:

arrayItems es el array de elementos que estaran en la lista, por ejemplo:

String[] arrayItems = new String[]{"item1", "item2", "item3", "item4", "item5"};


Una vez realizado todo el proceso tendremos una lista con colores de fondo alternados para una mejor visualizacion de la informacion.



No hay comentarios.:

Publicar un comentario