2016-09-24 54 views
-1

我試圖獲得JSONData,如果我在調試模式下運行它,它的工作原理,但如果沒有它不會工作......我認爲我認爲我有一個問題有了這個異步的東西,但我不知道什麼是錯的。請幫我試圖讓這個做了2天,什麼都不會工作...只有當我在調試中運行

public static final String SZABAD_EU = "SZABAD_EU"; 
public static Collections collections = new Collections(); 
CollectionsAdapter adapter; 

@InjectView(R.id.archivumReyclerView) 
RecyclerView mRecyclerView; 

@Override 
protected void onCreate(@Nullable Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_archivum); 
    ButterKnife.inject(this); 

    setSzabadEuMusoroks(); 

    adapter = new CollectionsAdapter(this); 
    mRecyclerView.setAdapter(adapter); 

    RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(this); 
    mRecyclerView.setLayoutManager(layoutManager); 

    mRecyclerView.setHasFixedSize(true); 
} 

public void setSzabadEuMusoroks(){ 
    if (isNetworkAvaible()){ 
     OkHttpClient client = new OkHttpClient(); 
     Request request = new Request.Builder().url("http://1956.osaarchivum.org/api/items?collection=13").build(); 

     Call call = client.newCall(request); 
     call.enqueue(new Callback() { 
      @Override 
      public void onFailure(Call call, IOException e) { 
       alertUserAboutError(); 
      } 

      @Override 
      public void onResponse(Call call, Response response) throws IOException { 
       final String jsonData = response.body().string(); 
       Log.v("JSONDATA", jsonData); 
       if (response.isSuccessful()) { 
        runOnUiThread(new Runnable() { 
         @Override 
         public void run() { 
          try { 
           parseData(jsonData); 
          } catch (JSONException e) { 
           Log.e("JSONEXCEPTION", "Exception caught: ", e); 
          } 
         } 
        }); 
       } else { 
        alertUserAboutError(); 
       } 
      } 
     }); 
    } 
    else{ 
     Toast.makeText(this, R.string.network_unavaible_message, Toast.LENGTH_LONG).show(); 
    } 

private void parseData(String jsonData) throws JSONException{ 
    JSONArray jsonArray = new JSONArray(jsonData); 
    SzabadEuMusorok[] szabadEuMusoroks = new SzabadEuMusorok[jsonArray.length()]; 

    for (int i = 0; i < jsonArray.length(); i++){ 
     JSONObject jsonObject = jsonArray.getJSONObject(i); 
     SzabadEuMusorok szabadEuMusorok = new SzabadEuMusorok(); 
     JSONArray elementTexts = jsonObject.getJSONArray("element_texts"); 

     JSONObject titleObject = elementTexts.getJSONObject(0); 
     szabadEuMusorok.setTitile(titleObject.getString("text")); 

     JSONObject subjectObject = elementTexts.getJSONObject(3); 
     szabadEuMusorok.setSubject(subjectObject.getString("text")); 

     JSONObject mainObject = jsonObject.getJSONObject("files"); 
     szabadEuMusorok.setAudioURL(mainObject.getString("url")); 

     szabadEuMusoroks[i] = szabadEuMusorok; 
    } 
    collections.setSzabadEuMusoroks(szabadEuMusoroks); 
} 
+0

什麼不起作用?沒有Json?不同的串?解析時出錯? –

+0

我的數組保持爲空。它不會設置它。 – Marci

+0

但jsonData與調試時相同嗎? –

回答