Atom Blog

Mostrando las entradas con la etiqueta view. Mostrar todas las entradas
Mostrando las entradas con la etiqueta view. Mostrar todas las entradas

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.



Como habilitar los eventos de click o Click Listener de un Button, TextView o EditText en Android



En nuestras aplicaciones moviles es muy comun utilizar botones o campos de texto que permiten mostrar e ingresar datos para hacer mas interactiva la aplicacion.

Los eventos desencadenados al presionar o hacer click sobre alguno de estos componentes son manejados desde la logica de la aplicacion, es decir desde los archivos .java.

A continuacion mostraremos un boton, un editText y un textView con sus respectivos eventos click o Click Listeners.

Primero definimos los componentes de la aplicacion en la interfaz de usuario, es decir en los archivos .xml. En este caso 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">

<Button
    android:id="@+id/boton_prueba"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="Boton de prueba"
    android:textSize="24sp"
/>

<EditText
    android:id="@+id/edit_text_prueba"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="EditText de prueba"
    android:textSize="24sp"
/>

<TextView
    android:id="@+id/text_view_prueba"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TextView de prueba"
    android:textSize="24sp"
/>

</LinearLayout>

Ahora en la clase que controladora de esta interfaz colocaremos el siguiente codigo dentro del evento onCreate():

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

       Button nameButton = (Button) findViewById(R.id.boton_prueba);
       TextView nameTextView = (TextView) findViewById(R.id.text_view_prueba);
       EditText nameEditText = (EditText) findViewById(R.id.edit_text_prueba);

       nameButton =.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                //CODE EVENTO CLICK
            }
       });

       nameTextView.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                //CODE EVENTO CLICK
            }
        });

        nameEditText.setOnClickListener(new View.OnClickListener() {
            public void onClick(View view) {
                //CODE EVENTO CLICK
            }
        });

}


Listo!! ahora podremos ejecutar cualquier codigo al presionar algun componente sobre la interfaz de usuario de Android.