家资是何物,积帙列梁梠。这篇文章主要讲述无法在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。
另一答案【无法在Asynctask Android,java中调用View】我认为问题是您尝试从创建它的其他线程访问视图。通常的方式是使用
Graph
:graph
推荐阅读
- 如何在Android屏幕上识别视图移动()
- 调用ondraw后重置画布,然后再在android中调用它
- 在Android应用中正确加载资源(使用openGL)
- 是否有适用于Android的图像编辑SDK [关闭]
- 如何在Android中的Canvas上移动路径()
- 查找JApplet的宽度和高度
- 使用AppActivate更改活动窗口
- 以编程方式测试是否在Android 10+中禁用了旧版外部存储访问
- Powershell(类似Haskell的$(apply)运算符())