我正在尝试从我的应用程序返回的api中获取结果,以便每个都在自己的textView
中。后来我想为每个添加一个按钮,但是现在我只是想在我的应用程序上显示结果。在我的try
语句中,一切似乎都很好,除了在final TextView rowTextView = new TextView(this)
this
行,我给出了一个错误(用红色加下划线)说TextView android.content.Context textView cannot be applied 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)
此代码:
final TextView rowTextView = new TextView(this); rowTextView.setText(object.toString());
毫无意义。您创建了TextView
,那很好。然后,您设置一些文本。好。但是显示它呢? TextView只是一个对象本身没有魔法显示。我建议您将TextView添加到您的布局中(如果需要,隐藏),然后设置消息并在有时间时显示它。
修改强>
您的代码也无效,因为this
中的new TextView(this)
指的是okhttp3.Callback
,而不是Context
(即您的活动)。
答案 1 :(得分:0)
在你的情况下,“this”是anonymous.okhttp3.Callback类的实例,使用类似“YourFragmentClass.this.getActivity()”的内容。