Está en la página 1de 7

Fecha: 22-09 de

2020
UNIVERSIDAD DE SAN BUENAVENTURA
USB Versión 1

Desarrollo de app móviles Página 1 de 7

Actividad No.11

ASIGNATURA: Desarrollo de app móviles.

TEMA: Persistencia de datos

ACTIVIDAD DE ENSEÑANZA – APRENDIZAJE – EVALUACIÓN: Insertar y consultar datos


desde el dispositivo móvil.

TIEMPO DE LA ACTIVIDAD DE E-A-E: 2 horas

TIEMPO DE LA GUIA DE APRENDIZAJE: 4 horas

Persistencia de datos

La persistencia en el ámbito de una aplicación indiferentemente si es una aplicación Android o de


cualquier otro tipo consiste en que los datos manipulados por la aplicación "sobrevivan" a la ejecución
de la misma en el tiempo; en otras palabras; consiste en almacenar los datos en un medio secundario,
no volátil para posterior reconstrucción y utilización; por lo tanto, son independientes en el tiempo del
proceso que los creó.

Almacenamiento de datos.

Almacenar archivos en Memoria Externa

Podemos guardar nuestros archivos en la Memoria Externa como discos, bases de datos memoria SD.
Por otro lado, se debe tener en cuenta que los archivos se encuentran accesibles para todos.

Permisos de almacenamiento

<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />


<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

Profesor: Yamil Buenaños Palacios


ybuenano@usbbog.edu.co
Fecha: 22-09 de
2020

UNIVERSIDAD DE SAN BUENAVENTURA Versión 1

USB Página 2 de 7
Desarrollo de app móviles

Código que permite configurar la Inserción y consulta de datos


public class MainActivity extends AppCompatActivity {

//**********************************************************************
//Declaración de Objetos y variables
//**********************************************************************
Button bconsultar,bguardar;
EditText edid, ednom,edape;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

//**********************************************************************
//Construcción de objetos
//**********************************************************************

edid=(EditText)findViewById(R.id.cid);
ednom=(EditText)findViewById(R.id.cnombre);
edape=(EditText)findViewById(R.id.capellido);
bguardar=(Button)findViewById(R.id.bAgregar);
bconsultar=(Button)findViewById(R.id.bConsultar);

//**********************************************************************
//Método acción para consultar datos de la Base de Datos a través de la identificación
//**********************************************************************

bconsultar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

new
MainActivity.ConsultarDatos().execute("http://10.0.2.2/PracticaMovil/ consultar.php?cid="+edid.getText().toString());

}
});

Profesor: Yamil Buenaños Palacios


ybuenano@usbbog.edu.co
Fecha: 22-09 de
2020

UNIVERSIDAD DE SAN BUENAVENTURA Versión 1

USB Página 3 de 7
Desarrollo de app móviles

//**********************************************************************
//Acción que permite agregar los datos a la base de datos
//**********************************************************************
bguardar.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {

new
MainActivity.CargarDatos().execute("http://10.0.2.2/PracticaMovil/insertar.php?cid="+edid.getText().toString()+"&cn
omb="+ednom.getText().toString()+"&cape="+edape.getText().toString());
}
});

//************************************************************************
//Clase que invoca el procedimiento consultar datos de la Base de Datos
//************************************************************************
private class ConsultarDatos extends AsyncTask<String, Void, String> {
@Override
protected String doInBackground(String... urls) {

try {
return downloadUrl(urls[0]);
} catch (IOException e) {
return "Unable to retrieve web page. URL may be invalid.";
}

//************************************************************
//METODO QUE PERMITE EXTRAER LOS DATOS DE LA BASE DE DATOS
//************************************************************
@Override
protected void onPostExecute(String result) {

JSONArray ja = null;
try {
ja = new JSONArray(result);
edid.setText(ja.getString(0));
ednom.setText(ja.getString(1));
edape.setText(ja.getString(2));
} catch (JSONException e) {
e.printStackTrace();
}
}
}

Profesor: Yamil Buenaños Palacios


ybuenano@usbbog.edu.co
Fecha: 22-09 de
2020

UNIVERSIDAD DE SAN BUENAVENTURA Versión 1

USB Página 4 de 7
Desarrollo de app móviles

//********************************************************************************
//Clase que invoca el procedimiento para Inserción de datos en la Base de Datos
//********************************************************************************

private class CargarDatos extends AsyncTask<String, Void, String> {


@Override
protected String doInBackground(String... urls) {

// params comes from the execute() call: params[0] is the url.


try {
return downloadUrl(urls[0]);
} catch (IOException e) {
return "Unable to retrieve web page. URL may be invalid.";
}
}

// Ejecuta el resultado de la clase AsyncTask.


@Override
protected void onPostExecute(String result) {
Toast.makeText(getApplicationContext(), "Los datos se guardaron
éxitosamente", Toast.LENGTH_LONG).show();
}
}

private String downloadUrl(String myurl) throws IOException {


Log.i("URL",""+myurl);
myurl = myurl.replace(" ","%20");
InputStream is = null;
int len = 500;

try {
URL url = new URL(myurl);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setReadTimeout(10000 /* milliseconds */);
conn.setConnectTimeout(15000 /* milliseconds */);
conn.setRequestMethod("GET");
conn.setDoInput(true);
// Starts the query
conn.connect();
int response = conn.getResponseCode();
Log.d("respuesta", "The response is: " + response);
is = conn.getInputStream();
String contentAsString = readIt(is, len);
return contentAsString;
} finally {
if (is != null) {
is.close();
}
}
}

Profesor: Yamil Buenaños Palacios


ybuenano@usbbog.edu.co
Fecha: 22-09 de
2020

UNIVERSIDAD DE SAN BUENAVENTURA Versión 1

USB Página 5 de 7
Desarrollo de app móviles

public String readIt(InputStream stream, int len) throws IOException,


UnsupportedEncodingException {
Reader reader = null;
reader = new InputStreamReader(stream, "UTF-8");
char[] buffer = new char[len];
reader.read(buffer);
return new String(buffer);
}

Configuración permisos de Internet


Después de haber creado la interfaz gráfica, la base de datos, la conexión y los web services, como
último paso se procede a a darle permisos a la aplicación para que se pueda conectar a través de
internet. De esa forma la aplicación estará lista para ser usada.

Para dar permisos a la aplicación, se debe seguir los siguientes pasos:

1. En el proyecto en la opción APP, Carpeta manifests, luego seleccionar la opción


AndroidManifests

Fig.1

2. Posteriormente, después de haber abierto el archivo AndroidManifests, pegar los siguientes


permisos:

<uses-permission android:name="android.permission.INTERNET" />


<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

Profesor: Yamil Buenaños Palacios


ybuenano@usbbog.edu.co
Fecha: 22-09 de
2020

UNIVERSIDAD DE SAN BUENAVENTURA Versión 1

USB Página 6 de 7
Desarrollo de app móviles

Fig.2

De esta forma, ya está lista la aplicación para ser probada.

Actividad
Teniendo como referencia la imagen de la figura 3, construir una app en Android, que permita insertar,
mostrar y eliminar datos utilizando la base de datos externa (MySQL) y, por último, limpiar los campos
de la interfaz. Por otro lado, la app deberá permitir controlar el acceso y mantener la sesión de usuarios,
identificándolo mediante los nombres y apellidos.

Fig.3

Profesor: Yamil Buenaños Palacios


ybuenano@usbbog.edu.co
Fecha: 22-09 de
2020

UNIVERSIDAD DE SAN BUENAVENTURA Versión 1

USB Página 7 de 7
Desarrollo de app móviles

Las acciones de cada botón deben cumplir los siguientes eventos:

 Insertar debe permitir guardar los datos en la base de datos.


 Mostrar. debe permitir mostrar los datos de un determinado usuario a través de la
identificación (DNI).
 Eliminar. debe permitir eliminar los datos de un determinado usuario a través de la
identificación (DNI).
 Limpiar. debe limpiar los campos de la interfaz.
.

Profesor: Yamil Buenaños Palacios


ybuenano@usbbog.edu.co

También podría gustarte