Uso de Intents Con Android Studio4

download Uso de Intents Con Android Studio4

of 16

Transcript of Uso de Intents Con Android Studio4

  • 7/29/2019 Uso de Intents Con Android Studio4

    1/16

    Uso de Intents con Android Studio, paso a paso

    En Android, los intents se usan para llamar a las Activity y as mismo enviarle

    variables a este Activity; esto nos permite trabajar con una o mas ventanas

    (Activitys) en nuestra aplicacin para android.

    Para nuestro ejemplo, usaremos un modelo de Matricula bsica, donde semostrarn los datos finales (Activity 4) de acuerdo a las opciones elegidas:

    Para eso crearemos un nuevo Proyecto con Android Studio, el cual se llamar

    "UsoDeIntents" donde nuestro Activity principal se llamar "Activity1" y su Layout

    "layout_uno", as trabajaremos con los 4 activity respectivamente.

    Una vez creado nuestro proyecto, vamos aadiendo los 3 Activity restantes, para

    eso nos vamos a nuestro paquete java y creamos un nuevo Activity, de esta manera

    se crea tambin su respectivo Layout.

    As tendremos las 4 clases java con sus respectivos archivos .xml

    http://1.bp.blogspot.com/-xGjryyV3d8E/UgtFnvIrQMI/AAAAAAAAADY/1gnIFsQbSDo/s1600/java.jpghttp://4.bp.blogspot.com/-hgegY8lfBh4/UgtEQc4ffmI/AAAAAAAAADI/AwmZXLA4uZI/s1600/1.jpghttp://4.bp.blogspot.com/-NSaWYWozm08/UgtBWrBDyfI/AAAAAAAAAC4/gzGn0DUUBog/s1600/PracticaCalificada01.png
  • 7/29/2019 Uso de Intents Con Android Studio4

    2/16

    PRIMER ACTIVITY

    Tenemos el layout_uno, donde encontramos los controles para "Codigo, Nombre,

    Apellidos, Sexo, Facultad" adems del Botn "Siguiente" donde la

    propiedad onClicktrabajar con la funcin llamar.

    Ahora al cdigo java puro, en el Activity1 (ojo: el cdigo es de mi proyecto que se

    llama "practicacalificada"):

    http://4.bp.blogspot.com/-06YqjYDxp88/UgtJ1r39pKI/AAAAAAAAAD4/DBsn6dO6SvI/s1600/a1.jpghttp://1.bp.blogspot.com/-AKXvmTzm3IU/UgtGx3nq_5I/AAAAAAAAADs/8SaZ1gGAbDU/s1600/asd.jpg
  • 7/29/2019 Uso de Intents Con Android Studio4

    3/16

    package com.kmv.practicacalificada;

    import android.content.Intent;

    import android.os.Bundle;

    import android.app.Activity;

    import android.view.Menu;

    import android.view.View;

    import android.widget.Button;

    import android.widget.EditText;

    public class MainActivity extends Activity {

    //Declaracin de variables de los objetos

    EditText edtcodigo;

    EditText edtnombre;

    EditText edtapellidos;

    EditText edtsexo;

    EditText edtfacultad;

    Button btnsiguiente;

    //Declaracin de variable pblica para verificar que opcin se eligi cuando estemos en

    //el activity4

    public static String facu;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

  • 7/29/2019 Uso de Intents Con Android Studio4

    4/16

    //Asignacin de los objetos a las variables

    edtcodigo=(EditText)findViewById(R.id.edtCodigo);

    edtnombre=(EditText)findViewById(R.id.edtNombre);

    edtapellidos=(EditText)findViewById(R.id.edtApellidos);

    edtsexo=(EditText)findViewById(R.id.edtSexo);

    edtfacultad=(EditText) findViewById(R.id.edtFacultad);

    btnsiguiente=(Button) findViewById(R.id.btnSiguiente);

    }

    @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;

    }

    //Implementando la funcin "llamar" del botn siguiente

    public void llamar(View v)

    {

    //Declaracin de variables

    String codigo;

    String nombre;

    String apellidos;

    String sexo;

    String facultad;

  • 7/29/2019 Uso de Intents Con Android Studio4

    5/16

    //Asignacin de valores a las variables

    codigo = edtcodigo.getText().toString();

    nombre = edtnombre.getText().toString();

    apellidos = edtapellidos.getText().toString();

    sexo = edtsexo.getText().toString();

    facultad = edtfacultad.getText().toString();

    //Para el primer caso, si facultad es "Faing" nos enviar al Activity2

    if (facultad.equalsIgnoreCase("Faing"))

    {

    facu="faing";

    //Declaracin del Intent, llamando al Activity2

    Intent i= new Intent(getApplicationContext(),com.kmv.practicacalificada.Activity2.class);

    //Enviando valores al intent

    i.putExtra("codigo",codigo);

    i.putExtra("nombre",nombre);

    i.putExtra("apellidos",apellidos);

    i.putExtra("sexo",sexo);

    i.putExtra("facultad",facultad);

    startActivity(i);

    }

    //Para el segundo caso, si facultad es "Facem" nos enviar al Activity3

    else if(facultad.equalsIgnoreCase("Facem"))

    {

    facu="facem";

  • 7/29/2019 Uso de Intents Con Android Studio4

    6/16

    //Declaracin del Intent, llamando al Activity3

    Intent j= new Intent(getApplicationContext(),com.kmv.practicacalificada.Activity3.class);

    j.putExtra("codigo",codigo);

    j.putExtra("nombre",nombre);

    j.putExtra("apellidos",apellidos);

    j.putExtra("sexo",sexo);

    j.putExtra("facultad",facultad);

    startActivity(j);

    }

    }

    }

    SEGUNDO ACTIVITY

    Tenemos el layout_dos, donde encontramos los controles para "Escuela, Num.

    Cursos, Total Crditos" adems del Botn "Siguiente" donde la

    propiedad onClicktrabajar con la funcin llamar.

    http://2.bp.blogspot.com/-LlumIL4kqK8/UgtSOCgA2VI/AAAAAAAAAEQ/XIRF03YAy2Y/s1600/a2.jpg
  • 7/29/2019 Uso de Intents Con Android Studio4

    7/16

    Ahora a su respectiva clase java, en este caso el intent se "reenviar" hacia el

    activity 4 pero en un nuevo Activity (en este caso Activity4) para que no se pierdan

    los datos.

    package com.kmv.practicacalificada;

    import android.content.Intent;

    import android.os.Bundle;

    import android.app.Activity;

    import android.view.Menu;

    import android.view.View;

    import android.widget.Button;

    import android.widget.EditText;

    import android.widget.Toast;

    public class Activity2 extends Activity {

    //Declaracin de variables de los objetos

    EditText edtescuela;

    EditText edtnumcursos;

    EditText edttotalcreditos;

    Button btnsiguiente;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.faing_main);

    //Asignacin de los objetos a las variables

  • 7/29/2019 Uso de Intents Con Android Studio4

    8/16

    edtescuela=(EditText)findViewById(R.id.edtEscuela);

    edtnumcursos=(EditText)findViewById(R.id.edtNumCursos);

    edttotalcreditos=(EditText)findViewById(R.id.edtTotalCreditos);

    btnsiguiente=(Button) findViewById(R.id.btnSiguiente);

    }

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.

    getMenuInflater().inflate(R.menu.activity2, menu);

    return true;

    }

    //Implementando la funcin "llamar" del botn siguiente

    public void llamar(View v)

    {

    //Declaracin de variables que se van a almacenar

    String escuela;

    String numcursos;

    int totalcreditos;

    escuela = edtescuela.getText().toString();

    numcursos = edtnumcursos.getText().toString();

    totalcreditos = Integer.parseInt(edttotalcreditos.getText().toString());

    //Almacenamos las variables que obtuvimos del intent1 para reenviarlo al

    //Activity4 con otro intent

  • 7/29/2019 Uso de Intents Con Android Studio4

    9/16

    String codigo; String nombre; String apellidos; String sexo; String facultad;

    Bundle b=getIntent().getExtras();

    codigo= b.getString("codigo");

    nombre= b.getString("nombre");

    apellidos= b.getString("apellidos");

    sexo= b.getString("sexo");

    facultad= b.getString("facultad");

    if(totalcreditos>12)

    {

    //Declaramos el intent y le agregamos los valores obtenidos

    Intent k= new Intent(getApplicationContext(),com.kmv.practicacalificada.Activity4.class);

    k.putExtra("escuela",escuela);

    k.putExtra("numcursos", numcursos);

    k.putExtra("totalcreditos", totalcreditos);

    //Agregamos los valores que se van a reenviar del primer intent a nuestro

    //intent actual que llamar al Activity4

    k.putExtra("codigo",codigo);

    k.putExtra("nombre",nombre);

    k.putExtra("apellidos",apellidos);

    k.putExtra("sexo",sexo);

    k.putExtra("facultad",facultad);

    startActivity(k);

    }

    else{

    //Si la condicin no se cumple mostrar un Toast con el mensaje de error

    Toast t=Toast.makeText(getApplicationContext(),"Se necesita una cantidad mayor a 12 creditos

  • 7/29/2019 Uso de Intents Con Android Studio4

    10/16

    t.show();

    }

    }

    }

    TERCER ACTIVITY

    Tenemos el layout_tres, donde encontramos los controles para "Docente, Curso,

    Semestre, Edad" adems del Botn "Siguiente" donde la

    propiedad onClicktrabajar con la funcin llamar, es el mismo caso que el

    segundo Activity, solo cambian los campos.

    Ahora a su respectiva clase java, al igual que el Activity2, los datos obtenidos del

    Intent del Activity1 se"reenviarn" hacia el Activity4 para que no se pierdan los

    datos.

    http://1.bp.blogspot.com/-Mg6nMGIkHZw/UgtXYxMFUfI/AAAAAAAAAEg/Nt7zmM3uBmo/s1600/a3.jpg
  • 7/29/2019 Uso de Intents Con Android Studio4

    11/16

    package com.kmv.practicacalificada;

    import android.content.Intent;

    import android.os.Bundle;

    import android.app.Activity;

    import android.view.Menu;

    import android.view.View;

    import android.widget.Button;

    import android.widget.EditText;

    import android.widget.Toast;

    public class Activity3 extends Activity {

    //Declaracin de variables de los objetos

    EditText edtdocente;

    EditText edtcurso;

    EditText edtsemestre;

    EditText edtedad;

    Button btnsiguiente;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.facem_main);

    //Asignacin de los objetos a las variables

    edtdocente=(EditText)findViewById(R.id.edtDocente);

    edtcurso=(EditText)findViewById(R.id.edtCurso);

    edtsemestre=(EditText)findViewById(R.id.edtSemestre);

    edtedad=(EditText)findViewById(R.id.edtEdad);

  • 7/29/2019 Uso de Intents Con Android Studio4

    12/16

    btnsiguiente=(Button) findViewById(R.id.btnSiguiente);

    }

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.

    getMenuInflater().inflate(R.menu.activity3, menu);

    return true;

    }

    public void llamar(View v)

    {

    String docente;

    String curso;

    String semestre;

    int edad;

    docente = edtdocente.getText().toString();

    curso = edtcurso.getText().toString();

    semestre = edtsemestre.getText().toString();

    edad = Integer.parseInt(edtedad.getText().toString());

    //Almacenamos las variables que obtuvimos del intent1 para reenviarlo al

    //Activity4 con otro intent

    String codigo; String nombre; String apellidos; String sexo; String facultad;

  • 7/29/2019 Uso de Intents Con Android Studio4

    13/16

    Bundle b=getIntent().getExtras();

    codigo= b.getString("codigo");

    nombre= b.getString("nombre");

    apellidos= b.getString("apellidos");

    sexo= b.getString("sexo");

    facultad= b.getString("facultad");

    if(edad>40)

    {

    Intent j= new Intent(getApplicationContext(),com.kmv.practicacalificada.Activity4.class);

    j.putExtra("docente",docente);

    j.putExtra("curso", curso);

    j.putExtra("semestre", semestre);

    j.putExtra("edad",edad);

    //Agregamos los valores que se van a reenviar del primer intent a nuestro

    //intent actual que llamar al Activity4

    j.putExtra("codigo",codigo);

    j.putExtra("nombre",nombre);

    j.putExtra("apellidos",apellidos);

    j.putExtra("sexo",sexo);

    j.putExtra("facultad",facultad);

    startActivity(j);

    }

    else{

    Toast t=Toast.makeText(getApplicationContext(),"Usted debe ser mayor de 40 anios",Toast.L

    t.show();

    }

    }

  • 7/29/2019 Uso de Intents Con Android Studio4

    14/16

    }

    CUARTO ACTIVITY

    En nuestro ltimo layout se mostrar toda la informacin que hemos recolectado

    del Activity1 y Activity2 Activity1 y Activity3 respectivamente, slo trabajaremos

    con un TextView para poder visualizar todos estos datos de manera concatenada, y

    tambin tenemos una imagen para adornar la interfaz final.

    En nuestro archivo java, recibiremos el intent con todos los datos recopilados segn

    la opcin elegida en el camino, para esto serva la variable pblica declarada en el

    primer intent.

    package com.kmv.practicacalificada;

    import android.os.Bundle;

    import android.app.Activity;

    http://1.bp.blogspot.com/-KMD52k8mR6s/Ugtaglh7x-I/AAAAAAAAAEw/9hLobh8_RUs/s1600/a4.jpg
  • 7/29/2019 Uso de Intents Con Android Studio4

    15/16

    import android.view.Menu;

    import android.widget.TextView;

    public class Activity4 extends Activity {

    //Solo declaramos nuestro TextView donde concatenaremos la informacin obtenida

    TextView textofinal;

    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.final_main);

    textofinal = (TextView) findViewById(R.id.tvFinal);

    //Si nuestra variable pblica es faing ya sabemos que camino hemos tomado

    if(MainActivity.facu.equals("faing"))

    {

    Bundle b=getIntent().getExtras();

    textofinal.setText("Codigo: "+b.getString("codigo")+"\n" +

    "Nombre: "+b.getString("nombre")+"\n" +

    "Apellidos: "+b.getString("apellidos")+"\n" +

    "Sexo: "+b.getString("sexo")+"\n" +

    "Facultad: "+b.getString("facultad")+"\n" +

    "-----------------------\n" +

    "Escuela: "+b.getString("escuela")+"\n" +

    "Num. Cursos: "+b.getString("numcursos")+"\n" +

    "Total Creditos: "+b.getInt("totalcreditos"));

  • 7/29/2019 Uso de Intents Con Android Studio4

    16/16

    }

    //Si nuestra variable pblica es facem los datos a mostrar cambian

    else if(MainActivity.facu.equals("facem"))

    {

    Bundle b=getIntent().getExtras();

    textofinal.setText("Codigo: "+b.getString("codigo")+"\n" +

    "Nombre: "+b.getString("nombre")+"\n" +

    "Apellidos: "+b.getString("apellidos")+"\n" +

    "Sexo: "+b.getString("sexo")+"\n" +

    "Facultad: "+b.getString("facultad")+"\n" +

    "-----------------------\n" +

    "Docente: "+b.getString("docente")+"\n" +

    "Curso: "+b.getString("curso")+"\n" +

    "Semestre: "+b.getString("semestre")+"\n" +

    "Edad: "+b.getInt("edad"));

    }

    }

    @Override

    public boolean onCreateOptionsMenu(Menu menu) {

    // Inflate the menu; this adds items to the action bar if it is present.

    getMenuInflater().inflate(R.menu.activity4, menu);

    return true;

    }

    }