Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android

Respuesta
 
Herramientas
  #1  
Viejo 08/07/14, 04:45:32
Array

[xs_avatar]
kakashi20 kakashi20 no está en línea
Usuario novato en la web
 
Fecha de registro: jul 2014
Mensajes: 22
Tu operador: Movistar

Exclamation Mostrar info retornada en otra pagina o activity

Hola

Hice este código para enviar variables a un archivo. Php dando url y esta insterta la variable en una bd mysql.

Cuando finaliza el proceso, muestra un mensaje a través del "Toast", que dice que inserto correctamente y limpia los EditText.

El problema es que como haría para que cuando se ejecute con el botón, este inserte los datos y me lleve a otra pagina o activity y mostrar los resultado que obtengo dle archivo .php ?

Nota: use AsyncTask para enviar las variables al archivo .php

Les agradecería sus comentario y ayuda. Estoy aprendiendo este nuevo lenguaje.

Gracias

Código:
package com.example.pruebaenviarvariables;

import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;

import org.apache.http.NameValuePair;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.HttpClient;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;

import android.app.Activity;
import android.content.pm.ActivityInfo;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ImageButton;
import android.widget.Toast;

import com.example.pruebaenviarvariables.R;

public class MainActivity extends Activity {

    private EditText dni;
    private EditText nombre;
    private EditText telefono;
    private EditText email;
    private Button insertar;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_SENSOR_PORTRAIT);
        setContentView(R.layout.fragment_main);


        nombre = (EditText) findViewById(R.id.nombre);
        dni=(EditText)findViewById(R.id.dni);
        telefono=(EditText)findViewById(R.id.telefono);
        email=(EditText)findViewById(R.id.email);       
        //Insertamos los datos de la persona.
        insertar=(Button)findViewById(R.id.insertar);   

        Log.v("Insertar value ", "= "+insertar);

        insertar.setOnClickListener(new OnClickListener(){

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub

                    new Insertar(MainActivity.this).execute();      

            }

        });

    }

    //Inserta los datos de las Personas en el servidor.
        private boolean insertar(){  
            HttpClient httpclient;
            List<NameValuePair> nameValuePairs;
            HttpPost httppost;
            httpclient=new DefaultHttpClient();
            httppost= new HttpPost("xxxxx.insert.php"); // Url del Servidor      
            //Añadimos nuestros datos
            nameValuePairs = new ArrayList<NameValuePair>(4);
            nameValuePairs.add(new BasicNameValuePair("dni",dni.getText().toString().trim()));
            nameValuePairs.add(new BasicNameValuePair("nombre",nombre.getText().toString().trim()));
            nameValuePairs.add(new BasicNameValuePair("telefono",telefono.getText().toString().trim()));
            nameValuePairs.add(new BasicNameValuePair("email",email.getText().toString().trim()));

            try {
               httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
               httpclient.execute(httppost);
               return true;
            } catch (UnsupportedEncodingException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (ClientProtocolException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            } catch (IOException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }
            return false;
        }       
        //AsyncTask para insertar Personas
        class Insertar extends AsyncTask<Void,String,Boolean>{

            private Activity context;

            Insertar(Activity context){
                this.context=context;
            }
            @Override
            protected Boolean doInBackground(Void... params) {
                // TODO Auto-generated method stub
                  insertar();

                  return true;
            }


            @Override
            protected void onPostExecute(Boolean result) {
                if(result)
                    Toast.makeText(context, "Persona insertada con éxito", Toast.LENGTH_LONG).show();
                    nombre.setText("");
                    dni.setText("");
                    telefono.setText("");
                    email.setText("");
            }
        }
}
Responder Con Cita


  #2  
Viejo 08/07/14, 20:44:45
Array

[xs_avatar]
Arasthel Arasthel no está en línea
Cocinero veterano
· Votos compra/venta: (1)
 
Fecha de registro: jun 2009
Localización: Almería
Mensajes: 1,946
Modelo de smartphone: Nexus 5
Tu operador: Amena
Lee los datos del HttpResponse que devuelve:
Código:
HttpResponse response = httpclient.execute(httppost);
InputStream stream = response.getEntity().getContent();
Con un Scanner, un BufferedReader o similares.

Almacena esos datos como quieras, como un objeto, un String, etc. Luego, cuando vayas a usar startActivity(Intent), a ese Intent debes añadirle un los datos:

Código:
Intent intent = new Intent(this, NuevaActivity.class);
intent.putExtra("resultado", variableResultado);
startActivity(intent);
Y para recuperarlo, en la nueva Activity:

Código:
public void onCreate(...) {
    ...
    Tipo resultado = getIntent().getExtras().get*Tipo*("resultado");
    ...
}
Siendo *Tipo* el tipo de la variable que metieras (String, Int, Boolean...). Si quieres pasar un objeto complejo lo mejor es que uses Parcelable y que lo cojas en el nuevo Activity con un getParcelable. Más info de esto lo tienes aquí.

Espero que te sirva.

Un saludo.

Última edición por Arasthel Día 08/07/14 a las 20:47:17.
Responder Con Cita
Gracias de parte de:
  #3  
Viejo 09/07/14, 03:39:31
Array

[xs_avatar]
kakashi20 kakashi20 no está en línea
Usuario novato en la web
 
Fecha de registro: jul 2014
Mensajes: 22
Tu operador: Movistar

Gracias. Me sirvió de mucho
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 18:26:29 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /