domingo, 2 de marzo de 2014

Android - Primeros Pasos - Añadiendo acciones a los botones

Anteriormente hemos visto como desarrollar una primera aplicación para Android partiendo de cero. Partiendo de dicha aplicación vamos a ver como añadir acciones a los botones que añadamos a la aplicación.

Para añadir botones y otros componentes debemos abrir el archivo res/layout/activity_main.xml (esta es la pantalla que hemos definido como principal en el anterior artículo, en caso de que quieras trabajar con otra pantalla el nombre del archivo será el que corresponda).

Si estamos usando eclipse entonces veremos el editor gráfico en el cual podemos añadir los elementos que queramos:


Si vemos el código del archivo tendremos lo siguiente:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <Button
        android:id="@+id/button1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_below="@+id/textView1"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="17dp"
        android:text="Botón de prueba" />

</RelativeLayout>

Como vemos se han definido dos componentes uno de tipo TextView y otro de tipo Button para este ejemplo lo que vamos a hacer es mostrar la hora actual cada vez que de pulse el botón.

Así pues una vez que tenemos la pantalla definida debemos ir a la calse java que es donde debemos asociar los eventos mediante la generación de un listener asociado al botón. El código resultante es el siguiente:

package com.ljlg.programandoblog;

import java.text.SimpleDateFormat;
import java.util.Date;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;


public class MainActivity extends Activity {
  
    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 

        // Añadir el listener
        addListenerButtonPrueba();

    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
  
    // Función a ejecutar al inciar la pantalla, dentro de 

    // esta función hemos definido el listener asociado 
    // a botón
    private void addListenerButtonPrueba() {
  
         button = (Button) findViewById(R.id.button1);
      
        button.setOnClickListener(new OnClickListener() {
           

            // Acción a ejecutar cada vez que se pulse el botón
            @Override
            public void onClick(View v) {
                TextView text = (TextView) findViewById(R.id.textView1);
                text.setText("Hora:" + new SimpleDateFormat("HH:mm:ss").format(new Date()));            
            }
        });     
    }

}

Como vemos en el código lo que se hace es añdir un listener asociado al botón en el momento de iniciar la aplicación (función onCreate),

Con esto ya tenemos una acción asociada a nuestro botón de modo que cada vez que pulsemos se actualizará el texto que se muestra con la hora actual.



No hay comentarios:

Publicar un comentario