Android 以编程方式添加textView;无法应用textView anonymous.okhttp3.Callback
我正在尝试从应用程序返回的api中获取结果,这样每个api都将位于自己的Android 以编程方式添加textView;无法应用textView anonymous.okhttp3.Callback,android,json,android-layout,Android,Json,Android Layout,我正在尝试从应用程序返回的api中获取结果,这样每个api都将位于自己的textView。稍后,我还想为每个应用程序添加一个按钮,但现在我只是想在我的应用程序上显示结果。在我的try语句中,除了第行final TextView rowTextView=new TextView(this)之外,一切似乎都很好。这个给了我一个错误(用红色下划线标出),说TextView android.content.Context TextView不能匿名应用。okhttp3.Callback。我真的不确定出了什
textView
。稍后,我还想为每个应用程序添加一个按钮,但现在我只是想在我的应用程序上显示结果。在我的try
语句中,除了第行final TextView rowTextView=new TextView(this)
之外,一切似乎都很好。这个给了我一个错误(用红色下划线标出),说TextView android.content.Context TextView不能匿名应用。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);
}
}
});
OkHttpClient=new-OkHttpClient();
MediaType MediaType=MediaType.parse(“应用程序/八位字节流”);
RequestBody=RequestBody.create(mediaType,{});
Request Request=newrequest.Builder().url(url.get().build();
client.newCall(request).enqueue(new Callback()){
@覆盖公共void onFailure(调用,IOE异常){
e、 printStackTrace();
}
@重写公共void onResponse(调用调用、响应响应)引发IOException{
Headers responseHeaders=response.Headers();
for(int i=0,size=responseHeaders.size();i
此代码:
最终文本视图行文本视图=新文本视图(此);
rowTextView.setText(object.toString())
毫无意义。您可以创建TextView
,这很好。然后设置一些文本。好啊但是展示它呢?TextView只是一个对象,它本身并没有神奇的效果。我建议您将文本视图添加到布局中(如果需要隐藏),然后设置消息并在有时间时显示
编辑
您的代码也将不起作用,因为新文本视图(this)
中的此
指的是okhttp3.回调
,而不是上下文
(即您的活动) 在您的示例中,“this”是anonymous.okhttp3.Callback类的实例,请使用类似“YourFragmentClass.this.getActivity()”的内容。我没有编写任何代码来显示它,因为我在使用新文本视图(this)时遇到了问题
部分,并尝试首先解决该问题。我的类称为搜索
,它扩展了片段
;我尝试将其更改为“Search.this”,但现在它表示它不能应用于SearchTextView构造函数参数应该是上下文类的实例,您可以使用“getActivity()”方法从片段实例获取它。我更新了原始答案。请不要污损你自己的帖子。