domingo, 18 de enero de 2015

(clase #4)Android Studio: RadioButton y propiedades principales

APRENDIENDO A UTILIZAR RADIOBUTTON.

En este apartado del blog vamos a aprender a utilizar el componente RadioButton y también a utilizar algunas propiedades mas de los texto escritos en pantalla (EditText).
Antes de empezar tendremos que colocar las siguientes herramientas en el layut y editar sus id para no tener problemas con el código fuente que dejaremos al final de la descripción del tema.
  • ·         (EditText) – id: et_usuario – Text: admin
  • ·         (EditText) -  id: et_contraseña: – Text:12345
  • ·         (RadioButton) – id: rb_comousuario – Text: como usuario
  • ·         (RadioButton) – id: rb_comoinvitado – Text: como inivtado
  • ·         (Button) – id: btn_ingresar Text: INGRESAR
  • ·         (TextView) – id: tv_mensaje  Text:


Recordemos que los nombres encerrados en paréntesis son las herramientas de Android Studio que hay que colocar en la interfaz principal o en l layout.


El proyecto consistirá, como ya lo habrá imaginado en crear una interfaz que simule un Login. Por ello tenemos los campos de texto que representa a Usuario, Contraseña . también tenemos los RadioButton que ayudaran a verificar como se desea acceder al sistema si: “como usuario”, o “como invitado”, y presionando el botón “INGRESAR” se mostrar un mensaje en la esquina de la pantalla mediante un textview que dirá si se accedió al sistema o no.
Ahora pasaremos a mostrar el código de la aplicación. Como siempre primero declaramos las variables y luego las inicializamos o vinculamos a las variables de interfaz o layoout.



Ahora que hemos declarado he inicializado las variables, pasamos a implementar un método que ayudara a verificar si los datos de las casillas son correctas o si se seleccionó la opción de ingresar al sistema como invitado esto con ayuda de los radiobutton.



Como vimos en esta imagen el método se llama VerificarIngreso(View view) colocamos los parámetro view para que el evento onclick del botón INGRESAR pueda reconocerlo.
·         Antes de verificar si el usuario o contraseña son correctos hay que verificar que opción de radiobutton esta marcada. Para ello sirve el método de clase isChecked() este nos devuelve un valor Booleano (verdadero)
·         Una ves hecho ello, pasamos a verificar si el usuario o contraseña son correctos. En este caso suponemos que el usuario correcto debería ser: admin y la contraseña correcta debería ser: 12345. Si los datos son otros no debería entrar al sistema.
·         Para verificar que los datos sean correctos, extraeremos los datos de cada casilla de texto en un valor string mediante el método de clase GetText().
·         Para comparar dos textos utilizaremos otro método de clase le cual es equals(“texto con el cual deseamos comparar”)
·         Comprobado todo esto simplemente cambiamos los textos de la variable m_tv_texto.
Ahora veremos otros métodos que nos ayudaran que solo se seleccione un radiobutton a la vez. es decir que no se puedan seleccionar  los dos RadioButton a la vez. Para ello utilizaremos el método de clase setChecked(false: para desmarcar y true: para marcar).


Recordemos por último que los métodos creados se vinculan a cada herramienta mediante su evento clic, que encontraremos en la tabla de propiedades como onClick
  • Para el Botón Ingresar  vincularemos onClick: VerificarIngreso
  • Para el Radiobutton como usuario: CheckButtonUsuario
  • Para el Radiobutton como invitado: CheckButtonInvitado

Para tener mas claro algunas propiedades o métodos de clase recomiendo ver el video tutorial en nuestro canal de Android studo:
Resultado de la aplicación:



                      CODIGO FUENTE:

Como siempre primero el código 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">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="LOGIN"
        android:id="@+id/textView"
        android:layout_alignParentTop="true"
        android:textSize="30dp"
        android:layout_centerHorizontal="true" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Usuario:"
        android:id="@+id/textView2"
        android:layout_below="@+id/textView"
        android:textSize="20dp"
        android:layout_toLeftOf="@+id/textView"
        android:layout_toStartOf="@+id/textView"
        android:layout_marginTop="69dp" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Contraseña:"
        android:id="@+id/textView3"
        android:layout_below="@+id/textView2"
        android:textSize="20dp"
        android:layout_alignRight="@+id/textView2"
        android:layout_alignEnd="@+id/textView2"
        android:layout_marginTop="50dp" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/et_usuario"
        android:layout_above="@+id/textView3"
        android:layout_toRightOf="@+id/textView3"
        android:layout_toEndOf="@+id/textView3"
        android:text="admin" />

    <EditText
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/et_contraseña"
        android:layout_alignBottom="@+id/textView3"
        android:layout_toRightOf="@+id/textView3"
        android:layout_toEndOf="@+id/textView3"
        android:text="12345" />

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="como usuario"
        android:id="@+id/rb_comousuario"
        android:layout_centerVertical="true"
        android:layout_alignLeft="@+id/textView2"
        android:layout_alignStart="@+id/textView2"
        android:checked="false"
        android:onClick="CheckButtonUsuario" />

    <RadioButton
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="como invitado"
        android:id="@+id/rb_comoinvitado"
        android:layout_below="@+id/rb_comousuario"
        android:layout_alignLeft="@+id/rb_comousuario"
        android:layout_alignStart="@+id/rb_comousuario"
        android:layout_marginTop="46dp"
        android:checked="false"
        android:onClick="CheckButtonInvitado" />

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Ingresar"
        android:id="@+id/btn_Ingresar"
        android:layout_below="@+id/rb_comoinvitado"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="54dp"
        android:onClick="VerificarIngreso" />

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/tv_mensaje"
        android:layout_alignParentBottom="true"
        android:layout_alignLeft="@+id/textView3"
        android:layout_alignStart="@+id/textView3"
        android:textColor="#ffff4629" />
</RelativeLayout>

Ahora el código java:

package com.dgafz.clase4;

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.RadioButton;
import android.widget.TextView;
import android.widget.Toast;


public class MainActivity extends ActionBarActivity {
    //declaramos las variables
    private TextView m_tv_texto;
    private EditText m_et_usuario, m_et_contraseña;
    private RadioButton m_rb_usuario, m_rb_invitado;
    private Button m_btn_Ingresar;
    //fin de las variables

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

        //inicializamos las variables
        m_tv_texto=(TextView) findViewById(R.id.tv_mensaje);
        m_et_usuario=(EditText) findViewById(R.id.et_usuario);
        m_et_contraseña=(EditText) findViewById(R.id.et_contraseña);
        m_rb_usuario=(RadioButton) findViewById(R.id.rb_comousuario);
        m_rb_invitado=(RadioButton) findViewById(R.id.rb_comoinvitado);
        m_btn_Ingresar=(Button) findViewById(R.id.btn_Ingresar);
        //fin de inicializar las variables

    }
    //**************************OTROS METODOS ******************************
    public void VerificarIngreso(View view)
    {
        //primero verificaremos que radiobutton se ha elegido
        //si la opcion de radiobutton como usuario esta activada o marcada
        //pasaremos a validar el nombre de usuario y la contraseña
        if (m_rb_usuario.isChecked())
        {
            //comprabamos si el usario y la contraseña son las que pide el sistema
            String usuario=m_et_usuario.getText().toString();
            String contraseña=m_et_contraseña.getText().toString();
            //en este caso sera Admin y 12345
            if ((usuario.equals("admin"))&&(contraseña.equals("12345")))
            {
                //cambiamos el texview mensaje
                m_tv_texto.setText("LOS DATOS SON CORRECTOS");
            }
            else
            {
                m_tv_texto.setText("LOS DATOS SON INCORRECTOS");
            }
        }
        else
        {
            m_tv_texto.setText("UD ESTA ACCEDIENDO AL SISTEMA COMO INVITADO");
            //MOSTRAREMOS UN MENSAJE MAS EN LA PANTALL UTILIZANDO LA CLASE TOAS
            Toast.makeText(getApplicationContext(),"A INGREADO AL SISTEMA",Toast.LENGTH_LONG).show();
        }
    }
    //creamos un metodo para validar llos chek de cada radio button
    public void CheckButtonInvitado(View view)
    {
        //desactivamos rb_usuario
        m_rb_usuario.setChecked(false);
    }
    public void CheckButtonUsuario(View view)
    {
        //desactivamos rb_invitado
        m_rb_invitado.setChecked(false);
    }
    //************************* 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);
    }
}


No hay comentarios.:

Publicar un comentario