viernes, 15 de noviembre de 2013

Comunicacion entre actividades codigo

----------CLASE PIRNCIPAL *********

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

public class MainActivity extends Activity {
   
    public static final String nombre = "";
    public static int OpcionElegida = 123;
    TextView contenido;//Mostrar el resultado.
   
   
    private Button bVerificar;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        contenido = (TextView)findViewById(R.id.textResult);//Mostrar el resultado.

        bVerificar =(Button) findViewById(R.id.Acep);
            bVerificar.setOnClickListener(new OnClickListener() {
                   public void onClick(View view) {
                       llamarSubActividad();
                  }
        });

    }

    @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;
    }
   
    public void llamarSubActividad(){
        //Busco el campo donde inserto el nombre
        EditText RecogerNombre = (EditText) findViewById(R.id.editText1);
       
        //Recojo los datos del campo RecogerNombre
        String aux = RecogerNombre.getText().toString();
       
       
        Intent i = new Intent(this,SubActividad.class );//Creo un intent para lanzar la subactividad
        i.putExtra("nom",aux); //paso los datos a la nueva actividad
        startActivityForResult(i, OpcionElegida);//lanzo la activida con startActivityForResult y le paso el código que tiene que devolver si todo ha ido bien
    }
   
     protected void onActivityResult(int requestCode,int resultCode, Intent pData)           
     {
         if (resultCode == Activity.RESULT_OK )//Si resultCode es igual a ok
         {
             final String dato = pData.getExtras().getString(SubActividad.estadoSub );//Obtengo el string de la subactividad
             //Aquí se hara lo que se desee con el valor recuperado
             contenido.setText(dato);//El valor recogido en dato es un string que será mostrado en el TextView de la actividad principal
         }
                    
     }
}

---------- CLASE SUB ACTIVIDAD ******

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

public class SubActividad extends Activity {

    private Button baceptar;
    private Button bDenegar;
    public static final String estadoSub = "";
   
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.nombre);
       
        //Busco el text view donde escribir el nombre
        TextView name = (TextView) findViewById(R.id.Text_hello);
       
        //recojo los datos que he enviado al llamar a esta actididad desde el MainActivity
        Bundle extras = getIntent().getExtras();
        String s = extras.getString("nom");
       
        //Modifico el texto a mostrar.
        name.setText(s);
       
        baceptar =(Button) findViewById(R.id.Acep);
        baceptar.setOnClickListener(new OnClickListener() {
                   public void onClick(View view) {
                       llamarActividadAceptar();
                  }
        });
       
        bDenegar = (Button) findViewById(R.id.Rechazar);
        bDenegar.setOnClickListener(new OnClickListener() {
            public void onClick(View view) {
                llamarActividadDenegar();
           }
 });
       
    }

    @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;
    }
   
    public void llamarActividadAceptar(){
        Intent dato = new Intent();
        dato.putExtra(estadoSub,"Aceptar");//Dato que pasaremos a la actividad principal
        setResult(android.app.Activity.RESULT_OK,dato );
        finish();
    }
   
    public void llamarActividadDenegar(){
        Intent dato = new Intent();
        dato.putExtra(estadoSub,"Rechazar");//Dato que pasaremos a la actividad principal
        setResult(android.app.Activity.RESULT_OK,dato );
        finish();
    }
   
}

------CODIGO LAYOUT ActivitiMAin*****

<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/Text_hello"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/hello_world" />

    <EditText
        android:id="@+id/editText1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/Text_hello"
        android:layout_below="@+id/Text_hello"
        android:ems="10"
        android:inputType="textPersonName" />

    <Button
        android:id="@+id/Acep"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/editText1"
        android:layout_below="@+id/editText1"
        android:text="@string/verificar" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/Acep"
        android:layout_below="@+id/Acep"
        android:layout_marginTop="14dp"
        android:text="@string/resultado" />

    <TextView
        android:id="@+id/textResult"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView2"
        android:layout_below="@+id/textView2"
        android:layout_marginLeft="28dp"
        android:text=" "
        android:textAppearance="?android:attr/textAppearanceLarge" />

</RelativeLayout>

------Codigo NOMBRE.XML *********

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <TextView
        android:id="@+id/Text_hello"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="28dp"
        android:layout_marginTop="27dp"
        android:text="Hola "
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/Text_hello"
        android:layout_below="@+id/Text_hello"
        android:text="¿aceptas las condiciones?"
        android:textAppearance="?android:attr/textAppearanceMedium" />

    <Button
        android:id="@+id/Acep"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/textView2"
        android:layout_marginTop="15dp"
        android:text="Aceptar" />

    <Button
        android:id="@+id/Rechazar"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_below="@+id/Acep"
        android:layout_marginTop="14dp"
        android:text="Rechazar" />

</RelativeLayout>


2 comentarios: