Actualización de datos de Json analizados en Listview
He estado intentando almacenar los datos analizados de Json en Listview pero no está trabajando.
Recuperé algunos datos (que está en la forma de tabla) de un servidor y después lo analizé en el objeto de Json. El código entero funcionó bien. Muestra los datos recuperados cuando uso "Toast" en mi actividad de Android. Por favor, ayúdame a almacenar estos datos analizados en ListView.
- Compruebe JSONArray para valor específico
- Android conectar mysql
- Convertir el número decimal json a corto con valor hexadecimal
- Parsing Gson con Json no funciona para Android
- ¿Conversión de json string a objeto java?
Aquí está mi código
public void clickbutton(View v) { try { // Log.i(getClass().getSimpleName(), "send task - start"); HttpParams httpParams = new BasicHttpParams(); HttpConnectionParams.setConnectionTimeout(httpParams, TIMEOUT_MILLISEC); HttpConnectionParams.setSoTimeout(httpParams, TIMEOUT_MILLISEC); // HttpParams p = new BasicHttpParams(); // p.setParameter("name", pvo.getName()); p.setParameter("user", "1"); // Instantiate an HttpClient HttpClient httpclient = new DefaultHttpClient(p); String url = "http://bhavit.xtreemhost.com/webservice1.php?user=1&format=json"; HttpPost httppost = new HttpPost(url); // Instantiate a GET HTTP method try { Log.i(getClass().getSimpleName(), "send task - start"); // List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>( 7); nameValuePairs.add(new BasicNameValuePair("details", "1")); httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs)); ResponseHandler<String> responseHandler = new BasicResponseHandler(); String responseBody = httpclient.execute(httppost, responseHandler); // Parse JSONObject json = new JSONObject(responseBody); JSONArray jArray = json.getJSONArray("posts"); ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>(); for (int i = 0; i < jArray.length(); i++) { HashMap<String, String> map = new HashMap<String, String>(); JSONObject e = jArray.getJSONObject(i); String s = e.getString("post"); JSONObject jObject = new JSONObject(s); map.put("time", jObject.getString("time")); map.put("latitude", jObject.getString("latitude")); map.put("longitude", jObject.getString("longitude")); mylist.add(map); } Toast.makeText(this, responseBody, Toast.LENGTH_LONG).show(); **String[] columns = new String[] { "Time", "Latitude", "Longitude" }; int[] renderTo = new int[] { R.id.time, R.id.latitude, R.id.longitude }; ListAdapter listAdapter = new SimpleAdapter(this, mylist, R.layout.geo_ponts_list, columns, renderTo); setListAdapter(listAdapter);** } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // Log.i(getClass().getSimpleName(), "send task - end"); } catch (Throwable t) { Toast.makeText(this, "Request failed: " + t.toString(), Toast.LENGTH_LONG).show(); } } private void setListAdapter(ListAdapter listAdapter) { // TODO Auto-generated method stub } public class Data { // private List<User> users; public List<details> users; // +getters/setters } static class details { String latitude; String longitude; String time; public String Longitude() { return longitude; } public String Latitude() { return latitude; } public String Time() { return time; } public void setUserName(String value) { longitude = value; } public void setidusers(String value) { latitude = value; }
No hay ningún error, pero la actividad no muestra los valores en el ListView, pero los valores se pueden ver usando Toast.! Producción de actividad usando tostadas
Aquí está mi archivo geo_ponts_list.xml
<TextView android:id="@+id/time" android:textSize="16sp" android:textStyle="bold" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <TextView android:id="@+id/latitude" android:textSize="16sp" android:layout_width="fill_parent" android:layout_height="wrap_content"/> <TextView android:id="@+id/longitude" android:textSize="16sp" android:layout_width="fill_parent" android:layout_height="wrap_content"/>
- Android analiza json de url y lo almacena
- Valor de Json Parsing y Nullable int en android
- cómo guardar datos de json en sqlite en android
- Android - ¿cómo agregar el objeto JSON a sharedPreferences?
- Cómo analizar JSON analizado para uso sin conexión
- ¿Pueden las anotaciones de Gson y Jackson coexistir en el mismo POJO?
- Problema al analizar JSON
- Introduce datos en la base de datos desde la aplicación de Android a través del servicio web.
Primera cosa a mencionar:
Compruebe nuevamente que su HashMap obtiene los valores correctos o no,
Registre sus valores en su bucle for como Log.i("item",jObject.getString("time"));
Y la segunda cosa hacer su propia custom list Adapter
clase,
USANDO ESTE EJEMPLO IGUAL QUE EL SUYO
Parece que el SimpleAdapter que estás usando debería ser sensible a mayúsculas y minúsculas? Estás pasando "Time", "Latitude" y "Longitude" como tus columnas, pero tu objeto JSON contiene "time", "latitude" y "longitude".
He dado su código de ir, y como Quenton dijo, es el problema con el caso que hace que el listview no mostrar nada.
**String[] columns = new String[] { "Time", "Latitude", "Longitude" }; int[] renderTo = new int[] { R.id.time, R.id.latitude, R.id.longitude }; ListAdapter listAdapter = new SimpleAdapter(this, mylist, R.layout.geo_ponts_list, columns, renderTo); setListAdapter(listAdapter);**
Debe modificar columnas variable para tener los valores en mayúsculas. Funcionó para mí.
String[] columns = new String[] {"time", "latitude', 'longitude'};
- Android – Actividad de espera durante la animación
- ¿Cuál es el propósito de SetHotspot Drawable en Android 5.0 (API 21)?