无法在Asynctask Android,java中调用View
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了无法在Asynctask Android,java中调用View相关的知识,希望对你有一定的参考价值。
我试图从我的Asynctask类中的另一个类调用该视图,但它似乎没有工作。
这是我的AsyncTask
private class parseSite extends AsyncTask<String, Void, List<Integer>> {
protected List<Integer> doInBackground(String... arg) {
List<Integer> output = new ArrayList<Integer>();
try {
htmlHelper hh = new htmlHelper(new URL(arg[0]));
output = hh.htmlHelper(arg[0]);
} catch (Exception e) {
System.out.println("Error");
}
return output;
}
protected void onPostExecute(List<Integer> exe) {
graph salesView = new graph();
View chartView = salesView.getView(this);
chartView.setLayoutParams(new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.FILL_PARENT, 1f));
LinearLayout layout = (LinearLayout) findViewById(R.id.linearview);
layout.addView(chartView, 0);
}
}
以下是活动“图表”的样子
public class graph {
public View getView(Context context) (...etc.)
我不明白为什么它不能调用该视图。
答案
假设您希望graph
以某种方式扩展Context
,例如通过扩展Activity
,并且parseSite
在graph
中定义,请进行以下更改:
View chartView = salesView.getView(graph.this);
在原始代码中,this
指的是parseSite
,它不会扩展Context
(并不像你可能想要的那样引用graph
)。
作为旁注,在典型的Java样式中,类应该用大写字母命名,即qazxsw poi而不是qazxsw poi。
另一答案
我认为问题是您尝试从创建它的其他线程访问视图。通常的方式是使用Graph
:
graph
以上是关于无法在Asynctask Android,java中调用View的主要内容,如果未能解决你的问题,请参考以下文章
jdbc 无法在 android 中处理 asynctask
如何为 Android Room 请求制作通用 AsyncTask
Android SQLite 更新无法在 AsyncTask 的后台运行
如何在 AsyncTask 或 RequestHandler.java 中添加基本的 auth java android?