2014-09-25 3 views
0

내 안드로이드 애플 리케이션에서 게시물을 받고 있지 않습니다. MainActivity에 대한 내 소스 코드입니다.안드로이드에서 wordpress json 파싱

Android 기기에서 직접이 앱을 실행하고 있습니다. 또한 장치에서 인터넷 연결을 사용할 수 있습니다. 그것은 단지 로딩 게시물을 보여주고 mothing 발생 .. :(

답변

0

당신에게 웹에서 JSON을 얻을 수 있습니까

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); 
} 

}

을이 시도 : 만약

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

빠른 응답을위한 고맙습니다 ..하지만 여전히 .. 아무 것도 보여주지 않습니다. 내 json을 확인하시기 바랍니다 .. 내가 코드에서 오류가없는 것 같아요 .. 당신은 내 json 여기 "http://www.aurangabadhq.com/?json=get_recent_posts" –

+0

그래서 Log.d ("YourApp ", jsonData); while 문 바로 뒤에는 Logcat에 아무것도 표시되지 않습니까? – user3482211

+0

ddms : 디버거 용 로컬 8600에 바인드 할 수 없음 ddmlib : 호스트 시스템의 소프트웨어에서 설정된 연결이 중단되었습니다. java.io.IOException : 호스트 시스템의 소프트웨어에서 설정된 연결이 중단되었습니다. \t at sun .nio.ch.SocketDispatcher.write0 (네이티브 메소드) \t at sun.nio.ch.SocketDispatcher.write (SocketDispatcher.java:51) \t at sun.nio.ch.IOUtil.writeFromNativeBuffer (IOUtil.java:93) sun.nio.ch.IOUtil.write (IOUtil.java:65) sun.nio.ch.SocketChannelImpl.write (SocketChannelImpl.java:487) –