Mostrando entradas con la etiqueta crear aplicaciones para moviles. Mostrar todas las entradas
Mostrando entradas con la etiqueta crear aplicaciones para moviles. Mostrar todas las entradas

martes, 21 de noviembre de 2017

como cambiar el icono de una aplicacion en android studio

Hola amig@s hoy veremos un tutorial básico de como cambiar de forma rápida el icono de nuestra aplicación por una imagen cualquiera que nosotros elijamos.

Primero en nuestra aplicación en android studio vamos a App -->new--> Image Asset




Se nos abrirá una nueva ventana clic en Image, luego en los puntos... del recuadro de Path



Se nos abrirá una nueva ventana demos buscar en el directorio la imagen por la que cambiaremos y luego elegirla, se sugiere que sea en formato png para evitar problemas.



Ahora con el nuevo icono hacemos clic en siguiente luego finish


Y al ejecutar nuestra Apk ya habremos cambiado el icono de nuestra aplicación:

lunes, 20 de noviembre de 2017

Como registrar las coordenadas en background a una base de datos en mysql y android studio

Hola amig@s como están, hoy les traigo un nuevo tutorial, a pedido de un usuario hoy veremos :

Como registrar las coordenadas en background(segundo  plano) a una base de datos en mysql y android studio


La ves pasada vimos algunos tutoriales al respecto, vimos un tutorial de como registrar  las coordenadas sin necesidad de darle clic algún botón.
como enviar la direccion y coordenadas del gps a una base de datos de forma automatica en android studio

Bueno esta vez sera algo parecido al darle clic al botón start tendrá que guardarse de forma infinita registros cada x tiempo a nuestra base de datos aunque cerremos la app, hasta que le demos clic en el botón stop sin mas rodeos empezamos con este tutorial a esto le llamamos  background o en segundo plano.

Como guía básica tendremos un ejercicio anterior donde teníamos un solo botón y para que se registre los datos teníamos que hacer un clic por registro:
como guardar la direccion y coordenadas del gps a una base de datos en android studio

Por favor entra al enlace de arriba y crea la base de datos y el archivo insertar.php de la webservices. Luego vuelve aquí y podemos continuar:


Primero debe dar estos permisos en tu AndroidManifest
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"/>
<uses-permission android:name="android.permission.INTERNET"/>
 <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
Ahora les dejo el activity_main para que puedan reemplazar:
<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.androfast.pc.appsegundoplanoguardargpsbd.MainActivity">

    <LinearLayout
        android:layout_width="368dp"
        android:layout_height="495dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_alignParentTop="true"
        android:orientation="vertical"
        tools:layout_editor_absoluteX="8dp"
        tools:layout_editor_absoluteY="8dp">

        <TextView
            android:id="@+id/textView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_alignParentBottom="true"
            android:layout_alignParentLeft="true"
            android:layout_alignParentStart="true"
            android:text="MIS COORDENADAS  SON:" />

        <TextView
            android:id="@+id/mensaje_id"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="TextView" />

        <TextView
            android:id="@+id/textView2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="MI DIRECCION ES:" />

        <TextView
            android:id="@+id/mensaje_id2"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:text="TextView" />

        <LinearLayout
            android:layout_width="fill_parent"
            android:layout_height="393dp"
            android:gravity="center"
            android:orientation="horizontal">

            <Button
                android:id="@+id/btnStop"
                android:layout_width="fill_parent"
                android:layout_height="65dp"
                android:layout_weight="1"
                android:gravity="center"
                android:text="STOP" />

            <Button
                android:id="@+id/btnGuardar"
                android:layout_width="fill_parent"
                android:layout_height="65dp"
                android:layout_weight="1"
                android:gravity="center"
                android:text="START"></Button>
        </LinearLayout>

    </LinearLayout>

</android.support.constraint.ConstraintLayout>


Ahora les paso a explicar la parte del código mucha atención no seas don vergas y doña vergas al menos date un minuto y con eso te quitas mil dudas:

Primero debemos crear un objeto de tipo Handler si quieres leer algo mas de la clase Handler  léelo aqui

 private Handler handler = new Handler();

Ahora implementaremos un objeto de la clase Runnable  y dentro de ella un método publico llamado run y ahí es donde se hace toda la magia:
private Runnable runnable = new Runnable() {
        @Override
        public void run() {
            try {
                new Insertar(MainActivity.this).execute();
               handler.postDelayed(runnable, 10000);
            }
            catch (Exception e) {
                e.printStackTrace();
            }

        }
    };

Dentro del run observan que llamamos al método Insertar y le decimos que se ejecute(execute)
y también llamamos al atributo postDelayed de la clase Handler y le estamos  mandando  como parámetro (runnable, 10000) ahí le indicamos que se repita cada 10 segundos osea que cada 10 segundos se enviaran las coordenadas y la dirección a nuestra base de datos.

Ahora debemos ver como funciona los botones:
Empezamos con el botón que guarda los datos:
btnGuardar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                handler.postDelayed(runnable, 5000);
            }
        });

Aquí le estamos indicando que cada vez que hagamos clic en el botón guardar empezara a correr nuestro handler, pero eso lo hará después de 5 segundos y porque?? porque me dio la gana jajaj no es cierto sucede que los datos demoran en cargar del gps si le ponemos que empiece a enviar datos desde el segundo 0 enviaremos null en cambio después de 5 segundos ya habrá cargado las coordenadas y la dirección.

Ahora miremos el código del botón Stop:
btnStop.setOnClickListener(new View.OnClickListener() {
  @Override
   public void onClick(View v) {
    handler.removeCallbacks(runnable);
    Toast.makeText(MainActivity.this,"Finalizo", Toast.LENGTH_SHORT).show();

            }
        });

Llamamos a otro atributo de Handler llamado removeCallbacks  y le mandamos como parametro a runnable lo que estamos haciendo aqui es cortar de golpe a la ejucion y luego con un Toast mostramos un mensaje de que finalizo el background.

NOTA: Si cierran su aplicación seguirá ejecutándose los envíos de coordenadas a la base de datos  y por cada inserción se le mostrara un mensaje de Datos insertados con éxito sino quiere que aparezca ese mensaje solamente vallan al método Insertar y ahí eliminan el Toast con dicho mensaje y ya no les aparecerá el mensaje.
Ahora les dejo el código completo y funcional:
package com.androfast.pc.appsegundoplanoguardargpsbd;

import android.Manifest;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.location.Address;
import android.location.Geocoder;
import android.location.Location;
import android.location.LocationListener;
import android.location.LocationManager;
import android.location.LocationProvider;
import android.os.AsyncTask;
import android.os.Bundle;
import android.os.Handler;
import android.provider.Settings;
import android.support.v4.app.ActivityCompat;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

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 java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;

public class MainActivity extends AppCompatActivity   {
    TextView mensaje1;
    TextView mensaje2;
    Button btnGuardar, btnStop;
    private Handler handler = new Handler();

    private Runnable runnable = new Runnable() {
        @Override
        public void run() {
            try {
                new Insertar(MainActivity.this).execute();
               handler.postDelayed(runnable, 10000);
            }
            catch (Exception e) {
                e.printStackTrace();
            }

        }
    };
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
       // handler.post(sendData);

        mensaje1 = (TextView) findViewById(R.id.mensaje_id);
        mensaje2 = (TextView) findViewById(R.id.mensaje_id2);
        btnGuardar =(Button) findViewById(R.id.btnGuardar);
        btnStop =(Button) findViewById(R.id.btnStop);
        btnGuardar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                handler.postDelayed(runnable, 5000);
            }
        });
        btnStop.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                handler.removeCallbacks(runnable);
                Toast.makeText(MainActivity.this,"Finalizo", Toast.LENGTH_SHORT).show();

            }
        });

        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION,}, 1000);
        } else {
            locationStart();
        }
    }
    //Insertamos los datos a nuestra webService
    private boolean insertar(){
        HttpClient httpClient;
        List<NameValuePair> nameValuePairs;
        HttpPost httpPost;
        httpClient = new DefaultHttpClient();
        httpPost = new HttpPost("http://192.168.8.133/gpsbd/insertar.php");//url del servidor
        //empezamos añadir nuestros datos
        nameValuePairs = new ArrayList<NameValuePair>(4);
        nameValuePairs.add(new BasicNameValuePair("coordenadas",mensaje1.getText().toString().trim()));
        nameValuePairs.add(new BasicNameValuePair("direccion",mensaje2.getText().toString().trim()));

        try {
            httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            httpClient.execute(httpPost);
            return true;


        } catch(UnsupportedEncodingException e){
            e.printStackTrace();
        }catch (ClientProtocolException e){
            e.printStackTrace();

        }catch (IOException e){
            e.printStackTrace();
        }
        return  false;
    }
    //AsyncTask para insertar Datos
    class Insertar extends AsyncTask<String,String,String> {

        private Activity context;

        Insertar(Activity context){
            this.context=context;
        }

        protected String doInBackground(String... params) {
            // TODO Auto-generated method stub
            if(insertar())
                context.runOnUiThread(new Runnable(){
                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        Toast.makeText(context, "Datos insertado con éxito", Toast.LENGTH_LONG).show();
                        mensaje1.setText("");
                        mensaje2.setText("");

                    }
                });
            else
                context.runOnUiThread(new Runnable(){
                    @Override
                    public void run() {
                        // TODO Auto-generated method stub
                        Toast.makeText(context, "Datos no insertado con éxito", Toast.LENGTH_LONG).show();
                    }
                });
            return null;
        }
    }

    //Apartir de aqui empezamos a obtener la direciones y coordenadas
    private void locationStart() {
        LocationManager mlocManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
        Localizacion Local = new Localizacion();
        Local.setMainActivity(this);
        final boolean gpsEnabled = mlocManager.isProviderEnabled(LocationManager.GPS_PROVIDER);
        if (!gpsEnabled) {
            Intent settingsIntent = new Intent(Settings.ACTION_LOCATION_SOURCE_SETTINGS);
            startActivity(settingsIntent);
        }
        if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED && ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_COARSE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
            ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION,}, 1000);
            return;
        }
        mlocManager.requestLocationUpdates(LocationManager.NETWORK_PROVIDER, 0, 0, (LocationListener) Local);
        mlocManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, (LocationListener) Local);

        mensaje1.setText("Localizacion agregada");
        mensaje2.setText("");
    }

    public void onRequestPermissionsResult(int requestCode, String[] permissions, int[] grantResults) {
        if (requestCode == 3000) {
            if (grantResults[0] == PackageManager.PERMISSION_GRANTED) {
                locationStart();
                return;
            }
        }
    }

    public void setLocation(Location loc) {
        //Obtener la direccion de la calle a partir de la latitud y la longitud
        if (loc.getLatitude() != 0.0 && loc.getLongitude() != 0.0) {
            try {
                Geocoder geocoder = new Geocoder(this, Locale.getDefault());
                List<Address> list = geocoder.getFromLocation(
                        loc.getLatitude(), loc.getLongitude(), 1);
                if (!list.isEmpty()) {
                    Address DirCalle = list.get(0);
                    mensaje2.setText(DirCalle.getAddressLine(0));
                }

            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
    /* Aqui empieza la Clase Localizacion */
    public class Localizacion implements LocationListener {
        MainActivity mainActivity;

        public MainActivity getMainActivity() {
            return mainActivity;
        }

        public void setMainActivity(MainActivity mainActivity) {
            this.mainActivity = mainActivity;
        }

        @Override
        public void onLocationChanged(Location loc) {
            // Este metodo se ejecuta cada vez que el GPS recibe nuevas coordenadas
            // debido a la deteccion de un cambio de ubicacion

            loc.getLatitude();
            loc.getLongitude();

            String Text = "Lat = "+ loc.getLatitude() + "\n Long = " + loc.getLongitude();
            mensaje1.setText(Text);
            this.mainActivity.setLocation(loc);
        }

        @Override
        public void onProviderDisabled(String provider) {
            // Este metodo se ejecuta cuando el GPS es desactivado
            mensaje1.setText("GPS Desactivado");
        }

        @Override
        public void onProviderEnabled(String provider) {
            // Este metodo se ejecuta cuando el GPS es activado
            mensaje1.setText("GPS Activado");
        }

        @Override
        public void onStatusChanged(String provider, int status, Bundle extras) {
            switch (status) {
                case LocationProvider.AVAILABLE:
                    Log.d("debug", "LocationProvider.AVAILABLE");
                    break;
                case LocationProvider.OUT_OF_SERVICE:
                    Log.d("debug", "LocationProvider.OUT_OF_SERVICE");
                    break;
                case LocationProvider.TEMPORARILY_UNAVAILABLE:
                    Log.d("debug", "LocationProvider.TEMPORARILY_UNAVAILABLE");
                    break;
            }
        }
    }
}

Y con eso hemos terminado, espero les haya gustado este pequeño tutorial hay otras formas de hacerlo como por ejemplo con la clase Service pero eso lo haremos en otra ocasión:
Igual si piensas que hablo escribo en chino te dejo el ejercicio:

  Link de la descarga
Programador alfa, lomo plateado, barba de clavos, mentón de roca, no descarga la aplicación sigue el tutorial. Clic para DESCARGAR

     
ENLACES DE INTERÉS:

jueves, 16 de noviembre de 2017

como registrar dos tablas relacionadas en android studio y mysql

Hola amig@s el dia de ayer revise la bandeja y encontré 45 correos donde preguntaban sobre:  
como registrar dos tablas relacionadas en android studio y mysql
Y lo que me comentan es que hay miles de tutoriales en SQLite, pero nada en Mysql. Entonces les echare una mano. Todo programador al estar en un proyecto llega al punto de que tiene que trabajar con dos o mas tablas relacionadas y las benditas foreign key(claves foráneas), entonces les comento que no hay nada mágico, tu web services es lo que cambia. En android se envía los atributos como siempre por POST no hay nada nuevo, en nuestra webservices hay que hacer una consulta, para obtener el id y luego insertarla en nuestra tabla relacionada.
Hay varias forma de extraer el id de registro, pero hoy haremos con una, las otras la averiguan por su cuenta.
Y este código hace toda la magia:
$sentencia  = $pdo->prepare("SELECT @@identity AS id");
$sentencia ->execute();
$resultado = $sentencia ->fetchAll();
$id = 0;
foreach ($resultado as $row) {
        $id = $row["id"];
    }

Vamos a crear una base de datos llamada relacional con dos tablas unidas por una foreign key
tabla: estudiantes
tabla: cursos
Como se que eres don vergas y doña vergas te voy dejar el código de la base datos y puedas implementarlo de forma rápida:
CREATE TABLE `cursos` (
  `id_cursos` int(11) NOT NULL,
  `id_estudiante` int(11) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `estudiante` (
  `id_estudiante` int(11) NOT NULL,
  `nombre` varchar(60) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;


 ALTER TABLE `estudiante`
  ADD PRIMARY KEY (`id_estudiante`);

 ALTER TABLE `estudiante`
  MODIFY `id_estudiante` int(11) NOT NULL AUTO_INCREMENT;


Ahora nos toca la webservices: como yo lo estoy creando de forma loca con mi xampp creare una carpeta llamada relacional y guardare ahí mi webservices con el nombre de registro.php
la ruta seria: C:\xampp\htdocs\relacional
<?php
$host_database = 'mysql:dbname=relacional;host=localhost';
$username = "root";
$password = "12345";

 try{ $pdo = new PDO($host_database,$username,$password); }
  catch(PDOException $e){ echo 'Error: ' . $e->getMessage(); }

 if ($_SERVER['REQUEST_METHOD'] == 'POST'){

 $nombre = $_POST['nombre'];
 $Curso = $_POST['id_cursos'];
 //Recibimos los valores de los cursos seleccionados
 $sentencia  = $pdo->prepare( 'INSERT INTO estudiante (id_estudiante,nombre) VALUES (null, :nombre)' );
 $sentencia ->execute(array( ':nombre' => $nombre, )); 
//Después del insert consultamos el id insertado:
 $sentencia  = $pdo->prepare("SELECT @@identity AS id");
 $sentencia ->execute();
 $resultado = $sentencia ->fetchAll();
 $id = 0;
  foreach ($resultado as $row) {
         $id = $row["id"];
     }

//Ya tenemos el último id insertado, ahora hacemos el insert en la tabla students_courses

 $sentencia = $pdo->prepare( 'INSERT INTO cursos (id_cursos,id_estudiante) VALUES (:id_cursos, :id_estudiante)' );
 $sentencia ->bindParam(':id_cursos', $idCurso);
 $sentencia ->bindParam(':id_estudiante', $id); //Variable del último id registrado en la tabla de students

//Insertamos dependiendo de los id's elegidos
  foreach ($Curso as $option_value)
   {
     $idCurso = $option_value;
     $sentencia ->execute();
   }
 }

?>


Ya esta armado nuestra webservices ahora hay que crear la app, para ello crearemos una nueva aplicación y le agregaremos lo siguiente en su builgradle:
useLibrary'org.apache.http.legacy'
 Y quedara de la siguiente forma:
android {
    compileSdkVersion 26
    buildToolsVersion "26.0.2"
    defaultConfig {
        applicationId "com.androidmorefast.pc.appwebservicesbasico"
        minSdkVersion 15
        targetSdkVersion 26
        versionCode 1
        versionName "1.0"
       
        useLibrary'org.apache.http.legacy'
    }

Ahora en nuestra aplicación debemos ir a nuestro res->values-> String
Ahí debemos agregar un array llamado cursos que contendrá todos nuestros cursos:
<resources>
    <string name="app_name">AppWebServicesBasico</string>
    <string-array name="cursos">
        <item>Matematicas</item>
        <item>Algebra</item>
        <item>Quimica</item>
        <item>Ciencias</item>
        <item>Fisica</item>
    </string-array>
</resources>


En nuestro AndroidManifest debemos agregar la siguiente linea:
<uses-permission android:name="android.permission.INTERNET"/>

Debemos crear una interfaz de un editText un spinner y un botón deberia quedar como se muestra en la siguiente imagen:
Les dejo  el código para que lo puedan agregar en su activity_main
<?xml version="1.0" encoding="utf-8"?>
    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:id="@+id/activity_main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context="com.androidmorefast.pc.appwebservicesbasico.MainActivity">

        <TextView
            android:id="@+id/textView"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignParentTop="true"
            android:layout_centerHorizontal="true"
            android:gravity="center"
            android:text="Enviar datos al servidor"
            android:textSize="20dp"
            android:textColor="#000000" />

    <EditText
        android:id="@+id/txtNombre"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentStart="true"
        android:layout_below="@+id/textView"
        android:layout_marginTop="28dp"
        android:ems="10"
        android:gravity="center"
        android:hint="Ingresa Nombre"
        android:inputType="textPersonName" />

    <Spinner
        android:id="@+id/sp_cursos"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/txtNombre"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="46dp"
        android:ems="10"
        android:gravity="center"
        android:entries="@array/cursos"/>
    <Button
        android:id="@+id/button"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@+id/sp_cursos"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="38dp"
        android:text="Enviar datos " />
</RelativeLayout>

Por ultimo nuestro MainActivity contendra lo siguiente
package com.androidmorefast.pc.appwebservicesbasico;

import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.Toast;
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
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 java.io.IOException;
import java.util.ArrayList;
import java.util.List;

public class MainActivity extends AppCompatActivity  {

    String ServerURL = "http://192.168.8.133/relacional/registrar.php" ;
    EditText nombre;
    Button button;
    String TempNombre;
     int TempCurso;
    Spinner curso;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        curso = (Spinner) findViewById(R.id.sp_cursos);
        nombre = (EditText)findViewById(R.id.txtNombre);
        button = (Button)findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

                ObtenerDatos();
                InsertaDatos(TempNombre, TempCurso);
            }
        });
    }

    public void ObtenerDatos(){

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

        TempCurso = curso.getSelectedItemPosition();

    }

    public void InsertaDatos(final String nombre,final int cursos){

        class SendPostReqAsyncTask extends AsyncTask<String, Void, String> {
            @Override
            protected String doInBackground(String... params) {

                String NombreHolder = nombre ;
                int   CursoHolder = cursos ;

                List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();

                nameValuePairs.add(new BasicNameValuePair("id_cursos[]", Integer.toString(CursoHolder)));
                nameValuePairs.add(new BasicNameValuePair("nombre", NombreHolder));


                try {
                    HttpClient httpClient = new DefaultHttpClient();

                    HttpPost httpPost = new HttpPost(ServerURL);

                    httpPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));

                    HttpResponse httpResponse = httpClient.execute(httpPost);
                    HttpEntity httpEntity = httpResponse.getEntity();


                } catch (ClientProtocolException e) {

                } catch (IOException e) {

                }
                return "Datos insertados con éxito";
            }

            @Override
            protected void onPostExecute(String result) {

                super.onPostExecute(result);

                Toast.makeText(MainActivity.this, "Datos enviados con éxito", Toast.LENGTH_LONG).show();
            }
        }
        SendPostReqAsyncTask sendPostReqAsyncTask = new SendPostReqAsyncTask();
        sendPostReqAsyncTask.execute(nombre,Integer.toString(cursos));
    }

}

Y con eso hemos culminado el ejercicio, espero les aya servido.

 

Copyright @ 2015 AndroFast.

Designed by Draganus | AndroFast