2017-04-20 66 views
0

我想從我的應用程序返回一個api得到我的結果,以便每個將在它自己的textView。後來我想爲每個按鈕添加一個按鈕,但現在我只是試圖讓結果顯示在我的應用程序中。在我的try聲明一切似乎很好,除了在線final TextView rowTextView = new TextView(this)this給我一個錯誤(得到紅色下劃線)說TextView android.content.Context textView cannot be applied anonymous.okhttp3.Callback。我不確定有什麼問題以及如何解決。我將不勝感激任何幫助!謝謝!這裏是我的代碼:以編程方式添加textView; textView不能應用anonymous.okhttp3.Callback

OkHttpClient client = new OkHttpClient(); 

        MediaType mediaType = MediaType.parse("application/octet-stream"); 
        RequestBody body = RequestBody.create(mediaType, "{}"); 
        Request request = new Request.Builder().url(url).get().build(); 


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

           } 

           @Override public void onResponse(Call call, Response response) throws IOException { 

            Headers responseHeaders = response.headers(); 
            for (int i = 0, size = responseHeaders.size(); i < size; i++) { 
             System.out.println(responseHeaders.name(i) + ": " + responseHeaders.value(i)); 
            } 

            //System.out.println(response.body().string()); 
            //System.out.println(response.body().toString()); 
            String jsonData = response.body().string(); 
            try { 
             JSONObject Jobject = new JSONObject(jsonData); 
             JSONArray Jarray = Jobject.getJSONArray("results"); 
             final TextView[] myTextViews = new TextView[Jarray.length()]; 
             for (int i = 0; i < Jarray.length(); i++) { 
              JSONObject object = Jarray.getJSONObject(i); 
              System.out.println(object.toString()); 
              final TextView rowTextView = new TextView(this); 
              rowTextView.setText(object.toString()); 
             } 
            }catch (JSONException e) { 
             e.printStackTrace(); 
             Log.e("MYAPP", "unexpected JSON exception", e); 

            } 


           } 
          }); 
+0

請不要污衊自己的帖子。 –

回答

0

在你的情況下,「this」是anonymous.okhttp3.Callback類的實例,而是使用類似「YourFragmentClass.this.getActivity()」的東西。

+0

我的課被稱爲'Search',它擴展了'Fragment';我嘗試將其更改爲'Search.this',但現在它說它不能應用於搜索 –

+0

TextView構造函數參數應該是Context類的實例,您可以使用「getActivity()」方法從片段實例中獲取它。我更新了原始答案。 – Biggemot

+0

謝謝!這樣可行! –

0

此代碼:

最終的TextView rowTextView =新的TextView(本); rowTextView.setText(object.toString());

是沒有意義的。你創建TextView,這很好。然後你設置一些文本。好。但是展示它呢? TextView僅僅是一個對象,本身並沒有什麼魔力顯示出來。我建議你將TextView添加到佈局中(如果需要,隱藏),然後設置消息並在有時間時顯示它。

編輯

您的代碼將無法工作,也因爲thisnew TextView(this)okhttp3.Callback,而不是Context(即你的活動)。

+0

我沒有寫任何代碼來顯示它,因爲我已經有了'新的TextView(this)'部分的問題,並試圖首先解決它。 –

相關問題