Avisos

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


 
Herramientas
  #1  
Viejo 08/07/14, 04:45:32
Avatar de kakashi20
kakashi20 kakashi20 no está en línea
Usuario novato en la web
Mensajes: 22
 
Fecha de registro: jul 2014
Mensajes: 22
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
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
Avatar de Arasthel
Arasthel Arasthel no está en línea
Cocinero veterano
Mensajes: 1,946
Compra y venta: (1)
 
Fecha de registro: jun 2009
Localización: Almería
Mensajes: 1,946
Modelo de smartphone: Nexus 5
Versión de ROM: DroidKang
Tu operador: Amena
Mencionado: 393 comentarios
Tagged: 1 hilos
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
Avatar de kakashi20
kakashi20 kakashi20 no está en línea
Usuario novato en la web
Mensajes: 22
 
Fecha de registro: jul 2014
Mensajes: 22
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
Gracias. Me sirvió de mucho
Responder Con Cita
Respuesta

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


Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 05:04:42 (GMT +1)

Cookies settings
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007