domingo, 25 de enero de 2015

Asociar componentes XML con variables JAVA mediante ID

Asociar los componentes XML con las variables JAVA es algo muy útil a la hora de programar las aplicaciones móviles, pues esto nos permite modificar los componentes en nuestra interfaz de usuario mediante acciones o procesos realizados en JAVA, en XML una vez ejecutada la aplicación no se pueden modificar los valores de los objetos pero en JAVA si se puede.

Para aquellos que no comprendan de forma clara a lo que me refiero pondré unos ejemplos que creo son simples:
  • Un solo botón que dice pulsame, y al momento de pulsarlo el texto cambia y dice Has pulsado N veces el botón.
  • O dos campos de texto EditText que al pulsar un botón haga la suma de los valores y lo muestre en un TextView.
Los ID son importantes pues imaginen el caso anterior dos campos de texto, pero ahora dos botones quiero que cuando se pulse uno se sumen las cantidades pero cuando se pulse el segundo se resten las cantidades, para este ejemplo se necesita saber cual botón fue pulsado y por ello es importante definir ID.

Para asociar los elementos XML a variables o entidades JAVA crearé un nuevo proyecto llamado ZASApp2, como bien sabemos crea por default un TextView que muestra el conocido Hello world! en Android, procedo a borrar el TextView (sleccionar el TextView en la interfaz gráfica y suprimir).

Realizaré la asociación de un elemento tipo botón, para hacerlo de manera gráfica se ubican en la selección de elementos yo la tengo del lado izquierdo se llama "Palette" busco el elemento Button, lo seleccionan y arrastran a la parte donde lo quieran ubicar.
Añadir elemento Button
para asignarle un ID al elemento por el momento conozco tres maneras:
  • Escribir el código del atributo ID en la etiqueta del elemento.
  • Seleccionar el elemento en la forma de gráfica y buscar el atributo ID.
  • Dar doble click sobre el elemento en la interfaz gráfica.
Usaré el último método, aquí también podemos cambiar el texto, el ID que asignaré será button1.

Ahora vamos a la actividad principal de nuestra aplicación, y dentro del OnCreate declaramos una estancia o variable Button (la palabra Button es una palabra reservada, como si se tratase de int o String) entonces lo declararé y para relacionar y asociar mi objeto con su ID escribo lo siguiente.
Button boton1 = (Button)findViewById(R.id.button1);

Button boton1 .- Mi variable o estancia se llama boton1 y es del tipo Button, por lo que tiene todas sus atributos y metodos.
= .- Como sabemos al usar el signo = se trata de una asignación.
(Button)findViewById(R.id.button1) .- La primera palabra entre paréntesis le indica el tipo de estancia que va a buscar, luego llamamos el método findViewById que encuentra una vista de acuerdo con el ID, y entre parentesis indicamos la ruta (R.id,button1) lo que significa Resources (Recursos) id (que se buscarán por el ID) y al final el ID que deseamos seleccionar y así es como se asocia un elemento XML con su correspondiente elemento en JAVA.

Importante para hacer la asociación debemos asegurarnos de que sea el mismo tipo de elemento o variable, un Button con Button, EditText con EditText, TextView con TextView, etc.

Aquí los código completos.

Código XML



    

Código JAVA

package com.example.zasapp2.zasapp2;

import android.os.Bundle;
import android.support.v7.app.ActionBarActivity;
import android.view.Menu;
import android.widget.Button;

public class ZASApp2MainActivity extends ActionBarActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_zasapp2_main);
        Button boton1 = (Button)findViewById(R.id.button1);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu_zasapp2_main, menu);
        return true;
    }
}


Recuerda escribir tus dudas y comentarios espero sea de ayuda para alguno de ustedes, en los próximos tutoriales veremos el uso de OnClick para capturar eventos en la pantalla, capturar los datos de una caja de texto o EditText, así como cambiar el texto de un View desde JAVA.
Por último no olvides compartir en tus redes sociales y seguirnos en google plus, facebook y twitter, los widgets se ubican en el lado derecho, gracias.

1 comentario: