2014-09-25 5 views
0

Я не получаю сообщения в своем приложении для Android. Это мой исходный код для MainActivity.wordpress json parsing in android

Я запускаю это приложение прямо на своем устройстве Android. А также подключение к Интернету включено на моем устройстве. Это только показывает загрузку сообщения и mothing бывает .. :(

public class MainActivity extends Activity { 
ListView postList; 

ArrayList<String> postArrayList=new ArrayList<String>(); 
ArrayAdapter<String> postAdapter; 
Context context; 
String feedUrl="http://www.aurangabadhq.com/?json=get_recent_posts"; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    context=this; 
    postList = (ListView) findViewById(R.id.postList); 
    postAdapter = new ArrayAdapter<String>(this,R.layout.post_list_item, postArrayList); 
    postList.setAdapter(postAdapter); 
    PostListTask loaderTask=new PostListTask(); 
    loaderTask.execute(); 
} 


@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    // Inflate the menu; this adds items to the action bar if it is present. 
    getMenuInflater().inflate(R.menu.main, menu); 
    return true; 
} 
public class PostListTask extends AsyncTask<Void,Void,Void>{ 
    ProgressDialog dialog; 

    @Override 
    protected void onPreExecute() { 
     dialog= new ProgressDialog(context); 
     dialog.setTitle("Loading Posts..."); 
     dialog.show(); 
     super.onPreExecute(); 
    } 



    @Override 
    protected Void doInBackground(Void... params) 
    { 
     HttpClient client=new DefaultHttpClient(); 
     HttpGet getRequest=new HttpGet(feedUrl); 
     try { 
      HttpResponse response=client.execute(getRequest); 
      StatusLine StatusLine= response.getStatusLine(); 
      int statusCode=StatusLine.getStatusCode(); 

      if(statusCode !=200) 
      { 
       return null; 
      } 
      InputStream jsonStream=response.getEntity().getContent(); 
      BufferedReader reader=new BufferedReader(new InputStreamReader(jsonStream)); 
      StringBuilder builder=new StringBuilder(); 
      String line; 
      while((line=reader.readLine())!=null) 
      { 
       builder.append(line); 
      } 
      String jsonData=builder.toString(); 
      JSONObject json=new JSONObject(jsonData); 
      JSONObject object=new JSONObject("object"); 
      JSONArray posts=new JSONArray("posts"); 
      for(int i=0;i<posts.length();i++) 
      { 
       JSONObject post=posts.getJSONObject(i); 

       postArrayList.add(post.getString("title")); 
      } 



     } catch (IOException e) { 
      e.printStackTrace(); 
     } catch (JSONException e) { 
      e.printStackTrace(); 
     } 
     return null; 
    } 

    @Override 
    protected void onPostExecute(Void aVoid) { 
     dialog.dismiss(); 
     postAdapter.notifyDataSetChanged(); 
     super.onPostExecute(aVoid); 
    } 

} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    // Handle action bar item clicks here. The action bar will 
    // automatically handle clicks on the Home/Up button, so long 
    // as you specify a parent activity in AndroidManifest.xml. 
    int id = item.getItemId(); 
    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 

}

ответ

0

смог получить JSon из Интернета Вы

Попробуйте это:

JSONObject json=new JSONObject(jsonData); 
JSONArray posts = json.getJSONArray("posts"); 
for(int i = 0; i < posts.length(); i++) { 
    JSONObject post=posts.getJSONObject(i); 
    postArrayList.add(post.getString("title")); 
} 

Не уверен, что если это будет работать, так как я не проверил ваш json. Я бы предложил попробовать создать строку журнала jsonData, чтобы узнать, не достаете ли вы от json из сети.

+0

Thanx для быстрого ответа .. но все же .. Он ничего не показывает.! пожалуйста, проверьте мой json .. Я думаю, что нет ошибки в коде .. вы можете проверить мой json здесь, «http://www.aurangabadhq.com/?json=get_recent_posts» –

+0

Итак, если вы поместите Log.d («YourApp» ", jsonData); сразу после утверждения, что-то появляется в Logcat? – user3482211

+0

ddms: Невозможно связать с локальным 8600 для отладчика ddmlib: Установленное соединение было прервано программным обеспечением вашей главной машины java.io.IOException: Установленное соединение было прервано программным обеспечением вашей главной машины \t на солнце .nio.ch.SocketDispatcher.write0 (Родной метод) \t в sun.nio.ch.SocketDispatcher.write (SocketDispatcher.java:51) \t в sun.nio.ch.IOUtil.writeFromNativeBuffer (IOUtil.java:93) \t в sun.nio.ch.IOUtil.write (IOUtil.java:65) \t в sun.nio.ch.SocketChannelImpl.write (SocketChannelImpl.java:487) –