viernes, 16 de enero de 2015

(Clase #3) Android Studio: TextView, EditText, Button – Aplicación de Suma, resta y multiplicación.

En esta ocasión realizaremos una aplicación que nos permitirá realizar algunas operaciones aritméticas básicas (Suma, Resta, Multiplicación). Para ello utilizaremos las herramientas  TexView, EditText, Button. Y los ubicaremos como vemos en la imagen:


Vamos conociendo nuevas propiedades para las herramientas como la propiedad Background que nos permite cambiar el color de fondo de la herramienta. Como vemos en la selección de rojo.
Especificaremos los id que le pusimos a las herramientas:
·         El primer número es un EditText  Id:et_num1 y como texto: 000
·         el segundo numero es un EditText id:et_num2 y como texto:000
·         el primer botón es un Button id:btn_sumar y con texto: +
·         el segundo botón es un Button id:btn_restar y con texto: -
·         el tercer botón es un Button id:btn_multiplicar y con texto: x
·         la ultima herramienta es un TexView id:tv_resultado texto:0
·         por ultimo las etiquetas que acompañan a cada herramienta  mencionada son TextView (numero, numero, Resultado)
Ahora una vez colocada las herramientas y puesta los id  a cada una pasaremos a inicializar las variables como ya habíamos aprendido en la clase anterior. Pasamos al MainActivity para empezar el código java.


Una vez declarada las variables de la clase principal MainActivity como vemos en la figura pasaremos a inicializar cada herramienta como se ve en la parte central de la imagen.
Inicializada las herramientas, crearemos los métodos que nos permitirán realizar los procesos de suma, resta y multiplicación que ayudara a dar funcionalidad a cada botón colocado en el Layout.


En estos métodos veremos que para recuperar el texto escrito en la aplicación dentro de los EditText, utilizaremos un método de clase que traen las herramientas, en este caso la herramienta EditText trae el método GetTex() ,que nos permite recuperar el texto escrito dentro del EditText.
Pero el lenguaje de programación no puede hacer operaciones aritméticas con textos así que convertimos los textos en valores enteros, y de esta manera podremos realizar las operaciones aritméticas.
Por ultimo debemos vincular cada Button a los métodos que les corresponde como vimos en la anterior clase. Para ello utilizaremos el evento Clic que se encuentra en el cuadro de herramientas con el nombre Onclic y seleccionaremos los métodos que les corresponden.
Para btn_sumar el método ClicbtnSumar(View view)

Ahora veremos el resultado de la aplicación:


Ahora  dejaremos el código de la aplicación como siempre primero el XML:

<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:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    android:paddingBottom="@dimen/activity_vertical_margin" tools:context=".MainActivity">

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/et_num1"
        android:layout_marginTop="42dp"
        android:autoText="false"
        android:text="000"
        android:textSize="50dp"
        android:background="#fffff8a3"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/et_num2"
        android:layout_marginTop="59dp"
        android:autoText="false"
        android:text="000"
        android:textSize="50dp"
        android:background="#fffff8a3"
        android:layout_below="@+id/et_num1"
        android:layout_alignLeft="@+id/et_num1"
        android:layout_alignStart="@+id/et_num1" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="numero:"
        android:id="@+id/tv_num1"
        android:textSize="30dp"
        android:layout_alignBottom="@+id/et_num1"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="numero:"
        android:id="@+id/textView"
        android:textSize="30dp"
        android:layout_alignBottom="@+id/et_num2"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="+"
        android:id="@+id/btn_sumar"
        android:layout_below="@+id/textView"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_marginTop="61dp"
        android:textSize="20dp"
        android:onClick="ClicbtnSumar" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="-"
        android:id="@+id/btn_restar"
        android:layout_alignTop="@+id/btn_sumar"
        android:layout_toRightOf="@+id/textView"
        android:layout_toEndOf="@+id/textView"
        android:textSize="20dp"
        android:onClick="ClicbtnRestar" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="x"
        android:id="@+id/button"
        android:layout_alignTop="@+id/btn_restar"
        android:layout_toRightOf="@+id/et_num2"
        android:layout_toEndOf="@+id/et_num2"
        android:onClick="ClicbtnMultiplicar" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Resultado:"
        android:id="@+id/textView2"
        android:layout_marginTop="58dp"
        android:textSize="30dp"
        android:layout_below="@+id/btn_sumar"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="0"
        android:id="@+id/tv_resultado"
        android:textSize="30dp"
        android:layout_alignTop="@+id/textView2"
        android:layout_centerHorizontal="true" />
</RelativeLayout>

Ahora mostraremos el código del ManiActivity o código en java.

package com.dgafz.clase1;

import android.support.v7.app.ActionBarActivity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;


public class MainActivity extends ActionBarActivity {

    //DECLRAMOS LOS ATRIBUTOS NECESARIOS
    private EditText m_et_num1, m_et_num2;
    private TextView m_tv_resultado;
    private Button m_btn_sumar, m_btn_restar, m_btn_multiplicar;
    //FIN ATRIBUTO
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //INICIALIZAMOS LOS ATRIBUTOS CON ESTA SENTENCIA DE CODIGO PARA ELLO NOS SERVIRA LOS ID QUE
        //CAMBIAMOS.
        m_et_num1=(EditText)findViewById(R.id.et_num1);
        m_et_num2=(EditText)findViewById(R.id.et_num2);
        m_tv_resultado=(TextView) findViewById(R.id.tv_resultado);
        m_btn_sumar=(Button) findViewById(R.id.btn_sumar);
        m_btn_restar=(Button) findViewById(R.id.btn_restar);
        m_btn_restar=(Button) findViewById(R.id.btn_restar);
        //fin inicializar variables
    }
    //***********OTROS MTODOS************
        //METODO PARA SUMAR NUMEROS
    public void ClicbtnSumar(View view)
    {
        //PARA SUMAR DEBEMOS RECUPERAR LOS VALORES QUE TENEMOS EN LOS EDITTEX
        String num1=m_et_num1.getText().toString();
        String num2=m_et_num2.getText().toString();
        //SOLO PODEMOS SUMAR NUMEROS ENTEROS
        //COMVERTIMOS LOS STRING A INT PARA PODER SUMAR LOS VALORES
        int a= Integer.parseInt(num1);
        int b=Integer.parseInt(num2);
        //AHORA SUMAREMOS LOS VALORES A Y B y lo representaremos por un C
        int c=a+b;
        String resultado=String.valueOf(c);
        //ahora mostraremos este valor en el la variable resultado
        m_tv_resultado.setText(resultado);
    }
        //METODO PARA RETSAR LOS NUMEROS
        public void ClicbtnRestar(View view)
        {
            //PARA SUMAR DEBEMOS RECUPERAR LOS VALORES QUE TENEMOS EN LOS EDITTEX
            String num1=m_et_num1.getText().toString();
            String num2=m_et_num2.getText().toString();
            //SOLO PODEMOS SUMAR NUMEROS ENTEROS
            //COMVERTIMOS LOS STRING A INT PARA PODER SUMAR LOS VALORES
            int a= Integer.parseInt(num1);
            int b=Integer.parseInt(num2);
            //AHORA RESTAREMOS LOS VALORES A Y B y lo representaremos por un C
            int c=a-b;
            String resultado=String.valueOf(c);
            //ahora mostraremos este valor en el la variable resultado
            m_tv_resultado.setText(resultado);
        }
        //METODO PARA MULTIPLICAR LOS NUMEROS
        public void ClicbtnMultiplicar(View view)
        {
            //PARA SUMAR DEBEMOS RECUPERAR LOS VALORES QUE TENEMOS EN LOS EDITTEX
            String num1=m_et_num1.getText().toString();
            String num2=m_et_num2.getText().toString();
            //SOLO PODEMOS SUMAR NUMEROS ENTEROS
            //COMVERTIMOS LOS STRING A INT PARA PODER SUMAR LOS VALORES
            int a= Integer.parseInt(num1);
            int b=Integer.parseInt(num2);
            //AHORA MULTIPLICAREMOS LOS VALORES A Y B y lo representaremos por un C
            int c=a*b;
            String resultado=String.valueOf(c);
            //ahora mostraremos este valor en el la variable resultado
            m_tv_resultado.setText(resultado);
        }
    //FIN OTROS METODOS
    @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_main, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle action bar item clicks here. The action bar will
        // automatically handle clicks on the Home/Up button, so long
        // as you specify a parent activity in AndroidManifest.xml.
        int id = item.getItemId();

        //noinspection SimplifiableIfStatement
        if (id == R.id.action_settings) {
            return true;
        }

        return super.onOptionsItemSelected(item);
    }
}

2 comentarios: