
Mostrar datos de una BD Remota en un LisView
Publicado por germancho (1 intervención) el 26/06/2017 20:38:45
Hola quiero mostrar los datos de una base de datos remota en un ListView, y el problema q tengo es q cuando utilizo el emulador no muestra ningun dato.
MainActivity
Activity_main
getData2.php
MainActivity
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
package com.example.consultarbd.consultarbd;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import com.loopj.android.http.AsyncHttpClient;
import com.loopj.android.http.AsyncHttpResponseHandler;
import com.loopj.android.http.RequestParams;
import org.json.JSONArray;
import java.util.ArrayList;
import cz.msebera.android.httpclient.Header;
public class MainActivity extends AppCompatActivity {
ListView listado;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
listado = (ListView) findViewById(R.id.lista);
ObtenerDatos();
}
public void ObtenerDatos() {
AsyncHttpClient client = new AsyncHttpClient();
String url = "http://germanccho.96.lt/getData2.php";
RequestParams parametros = new RequestParams();
client.post(url, parametros, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
if (statusCode == 200) {
CargaLista(obtenerDatosJSON(new String(responseBody)));
}
}
@Override
public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {
}
});
}
public void CargaLista(ArrayList<String> datos) {
ArrayAdapter<String> adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, datos);
listado.setAdapter(adapter);
}
public ArrayList<String> obtenerDatosJSON(String response) {
ArrayList<String> listado = new ArrayList<>();
try {
JSONArray jsonArray = new JSONArray(response);
String texto;
for (int i = 0; i < jsonArray.length(); i++) {
texto = jsonArray.getJSONObject(i).getString("nombre") + " " +
jsonArray.getJSONObject(i).getString("telefono") + " ";
listado.add(texto);
}
} catch (Exception e) {
e.printStackTrace();
} return listado;
}
}
Activity_main
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<?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: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="com.example.consultarbd.consultarbd.MainActivity">
<ListView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/lista"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
getData2.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
$mysqli = new mysqli("mysql.hostinger.com.ar", "u798910997_glw", "germanccho", "u798910997_user") or die ("Sin conexion");
$myArray = array();
if ($result = $mysqli->query("SELECT nombre, telefono FROM usuario")) {
while($row = $result->fetch_array(MYSQL_ASSOC)) {
$datos[] = $row;
}
echo json_encode($datos);
}
$result->close();
$mysqli->close();
?>
Valora esta pregunta


0