在我的CountryInfoActivity.java
中,我有一个异步类
,它从这个网站检索JSON:https://pt.wikipedia.org/w/api.php?format=json
这些是我用来检索数据的类,在最后一个类中,我尝试将数据设置到我的文本视图中。。。顺便说一下,在我的onCreate方法中,我以这种方式调用了这个类newdownloadtask()。执行(url)
public class DownloadTask extends AsyncTask<String,Integer,Void>{
@Override
protected Void doInBackground(String... params) {
String url = params[0];
getJSONFromURL(url);
return null;
}
}
public String getJSONFromURL(String url){
String json_string = null;
try{
URL obj = new URL(url);
HttpURLConnection http = (HttpURLConnection) obj.openConnection();
http.setRequestMethod("GET");
int response = http.getResponseCode();
Log.i("response",Integer.toString(response));
BufferedReader reader = new BufferedReader(new InputStreamReader(http.getInputStream()));
StringBuilder sb = new StringBuilder();
String line = null;
while ((line = reader.readLine())!= null){
sb.append(line+"\n");
}
reader.close();
json_string = sb.toString();
Log.i("json_string",json_string);
} catch (UnsupportedEncodingException e){
e.printStackTrace();
} catch (ClientProtocolException e){
e.printStackTrace();
} catch (IOException e){
e.printStackTrace();
}
ParseJson(json_string);
return null;
}
public void ParseJson (String json){
JSONObject obj = null;
try {
obj = new JSONObject(json);
} catch (JSONException e) {
e.printStackTrace();
}
try {
JSONArray pageIdObj = obj.getJSONObject("query").getJSONObject("pages").names();
String page = String.valueOf(pageIdObj.get(0));
Log.i("ASdasd",page);
textoSobrePais = obj.getJSONObject("query").getJSONObject("pages").getJSONObject(page).getString("extract");
page = "";
Log.i("texte",textoSobrePais);
txtInfoPais = findViewById(R.id.txtInfoPais);
txtInfoPais.setText(textoSobrePais);
} catch (JSONException e) {
e.printStackTrace();
}
}
这是它崩溃时给我的错误:https://pastebin.com/PJh5r36u
有人能帮忙吗?
您不能从非UI线程更新UI组件。在UI线程上运行TextView
的更新,如下所示:
runOnUiThread(new Runnable() {
@Override
public void run() {
txtInfoPais.setText(textoSobrePais);
}
});
我们无法从后台线程更新UI。您必须在主线程上设置文本
像这样在主线程上运行
runOnUiThread(new Runnable() {
@Override
public void run() {
txtInfo.setText(textoPais);
}
});
这显示了错误 如何将文本设置为? xml如下所示
输入示例:12345.1 期望输出总计金额DueTextField: 12,345.10 实际结果 系统出来println(格式化文本):12345.10//OK totalAmountDueTextField。setText(formattedText):12345.1//这就是问题所在。 以及如何将初始值设置为0.00(当前为0.0)?
我无法在自定义适配器的<code>getView() 我已经尝试了以下解决方案,但它不适合我: 解决方案一 解决方案二 解决方案三 列表视图. xml文件: 下面是我的keep_resing xml文件: 下面是我的适配器代码: 问题是,我无法将文本视图文本更改为“测试”。 注意:如果我通过执行“< code > holder . hello text . gettext()来查看Toast中的值
问题内容: 我可以写一个描述符,返回一个可以等待的未来。 现在,我可以用来获取协程中的值。 如何设置此属性? -> SyntaxError:无法分配给等待表达式 -> TypeError:对象NoneType不能在’await’表达式中使用 -> RuntimeWarning:从未等待协程’set‘ 问题答案: 您尝试执行的操作是不可能的(使用Python 3.5)。 虽然返回Future是明智的
这是classBinderData extends BaseAdapter的getView函数: public View getView(int position,View convertView,ViewGroup parent){代码> 添加一行:字体tf=Typeface.createFromAsset(vi.getContext(). getAsset(),"字体/Roboto_Thin.
我想在useEffect钩子中使用异步post-get请求。这是一种优化策略吗?