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

Respuesta
 
Herramientas
  #1  
Viejo 29/04/15, 00:48:00
Array

[xs_avatar]
portal47 portal47 no está en línea
Miembro del foro
 
Fecha de registro: jul 2012
Mensajes: 215
Modelo de smartphone: Nexus 4

Leer JSON Wordpress

Hola, en la app que estoy haciendo quiero que aparesca los proximos eventos de la empresa y estos para no estar actualizando la app al agregar un evento quiero obtener los datos de la web, pero no me muestra ningun dato.

Estoy obteniendo los datos desde aqui:
http://cmx.org.mx/json/get_posts

pero si intento con este si aparecen los datos:
http://api.androidhive.info/contacts

este es mi codigo
Código:
package info.androidhive.jsonparsing;

import info.androidhive.jsonparsing.R;
import java.util.ArrayList;
import java.util.HashMap;

import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import android.app.ListActivity;
import android.app.ProgressDialog;
import android.content.Intent;
import android.os.AsyncTask;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import android.widget.TextView;

public class MainActivity extends ListActivity {

    private ProgressDialog pDialog;

    // URL to get contacts JSON
    private static String url = "http://cmx.org.mx/json/get_posts/";

    // JSON Node names
    private static final String TAG_CONTACTS = "get_posts";
    private static final String TAG_ID = "id";
    private static final String TAG_TITLE = "slug";

    // contacts JSONArray
    JSONArray get_posts = null;

    // Hashmap for ListView
    ArrayList<HashMap<String, String>> contactList;

    @override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        contactList = new ArrayList<HashMap<String, String>>();

        ListView lv = getListView();

        // Listview on item click listener
        lv.setOnItemClickListener(new OnItemClickListener() {

            @override
            public void onItemClick(AdapterView<?> parent, View view,
                                    int position, long id) {
                // getting values from selected ListItem

                String title = ((TextView) view.findViewById(R.id.title))
                        .getText().toString();

                // Starting single contact activity
                Intent in = new Intent(getApplicationContext(),
                        MainActivity.class);
                in.putExtra(TAG_TITLE, title);
                startActivity(in);

            }
        });

        // Calling async task to get json
        new GetContacts().execute();
    }

    /**
     * Async task class to get json by making HTTP call
     * */
    private class GetContacts extends AsyncTask<Void, Void, Void> {

        @override
        protected void onPreExecute() {
            super.onPreExecute();
            // Showing progress dialog
            pDialog = new ProgressDialog(MainActivity.this);
            pDialog.setMessage("Espera...");
            pDialog.setCancelable(false);
            pDialog.show();

        }

        @override
        protected Void doInBackground(Void... arg0) {
            // Creating service handler class instance
            ServiceHandler sh = new ServiceHandler();

            // Making a request to url and getting response
            String jsonStr = sh.makeServiceCall(url, ServiceHandler.GET);

            Log.d("Response: ", "> " + jsonStr);

            if (jsonStr != null) {
                try {
                    JSONObject jsonObj = new JSONObject(jsonStr);

                    // Getting JSON Array node
                    get_posts = jsonObj.getJSONArray(TAG_CONTACTS);

                    // looping through All Contacts
                    for (int i = 0; i < get_posts.length(); i++) {
                        JSONObject c = get_posts.getJSONObject(i);

                        String id = c.getString(TAG_ID);
                        String title = c.getString(TAG_TITLE);

                        // tmp hashmap for single contact
                        HashMap<String, String> contact = new HashMap<String, String>();

                        // adding each child node to HashMap key => value
                        contact.put(TAG_ID, id);
                        contact.put(TAG_TITLE, title);

                        // adding contact to contact list
                        contactList.add(contact);
                    }
                } catch (JSONException e) {
                    e.printStackTrace();
                }
            } else {
                Log.e("ServiceHandler", "Couldn't get any data from the url");
            }

            return null;
        }

        @override
        protected void onPostExecute(Void result) {
            super.onPostExecute(result);
            // Dismiss the progress dialog
            if (pDialog.isShowing())
                pDialog.dismiss();
            /**
             * Updating parsed JSON data into ListView
             * */
            ListAdapter adapter = new SimpleAdapter(
                    MainActivity.this, contactList,
                    R.layout.list_item, new String[] { TAG_TITLE }, new int[] { R.id.title});

            setListAdapter(adapter);
        }

    }

}
Responder Con Cita


  #2  
Viejo 01/05/15, 12:08:54
Array

[xs_avatar]
rafaxplayer rafaxplayer no está en línea
Miembro del foro
 
Fecha de registro: jun 2013
Localización: en la barcelona media
Mensajes: 224
Modelo de smartphone: LG-E610
Tu operador: Orange
Haver yo lo primero antes de nada es que la url te sirva un json para consumir , para eso debes crear en tu web algún servicio para tu app android.
Monta un php que obtenga los datos que quieres y monte un json como el ejemplo de androidhive para despues consumirlo desde tu app de android.
Esa url que das no te da nada, por lo tanto empieza por ahi.
Responder Con Cita
  #3  
Viejo 08/05/15, 16:29:31
Array

[xs_avatar]
portal47 portal47 no está en línea
Miembro del foro
 
Fecha de registro: jul 2012
Mensajes: 215
Modelo de smartphone: Nexus 4

 Cita: Originalmente Escrito por rafaxplayer Ver Mensaje
Haver yo lo primero antes de nada es que la url te sirva un json para consumir , para eso debes crear en tu web algún servicio para tu app android.
Monta un php que obtenga los datos que quieres y monte un json como el ejemplo de androidhive para despues consumirlo desde tu app de android.
Esa url que das no te da nada, por lo tanto empieza por ahi.
La web esta en wordpress y no se si se pueda hacer lo que me dices.
Por el momento estoy escribiendo el json y lo subo a la web para que se sincronice, no creo que sea lo mejor pero no he encontrado nada mejor
Responder Con Cita
  #4  
Viejo 14/05/15, 23:23:45
Array

[xs_avatar]
Dild0 Dild0 no está en línea
Usuario muy activo
 
Fecha de registro: may 2009
Mensajes: 856
Tu operador: Pepephone

@portal47

Buenas, nose exactamente que quieres, pero alomejor esto te ayuda https://wordpress.org/plugins/json-api
__________________
Responder Con Cita
  #5  
Viejo 17/05/15, 23:01:04
Array

[xs_avatar]
DaSound DaSound no está en línea
Desarrollador
· Votos compra/venta: (1)
 
Fecha de registro: oct 2008
Localización: Madrid
Mensajes: 8,578
Modelo de smartphone: iPhone X 256GB / iPad Pro 10.5 / iPhone 6s Plus /
Tu operador: Movistar
Yo tengo hecho un FeedReader para mi blog Android (lo único que yo lo tengo hecho en Blogger, pero creo que funcionaría igualmente) y en lugar de mediante el JSON, tiro del rss... obteniendo un XML. Tanto el JSON como el XML son fáciles de tratar, pero por darte una vía alternativa para hacer lo que quieres.

Saludos.
__________________
Apple 
Responder Con Cita
Respuesta

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



Hora actual: 07:26:21 (GMT +2)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /