无法在Asynctask Android,java中调用View

家资是何物,积帙列梁梠。这篇文章主要讲述无法在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,并且parseSitegraph中定义,请进行以下更改:
View chartView = salesView.getView(graph.this);

在原始代码中,this指的是parseSite,它不会扩展Context(并不像你可能想要的那样引用graph)。
作为旁注,在典型的java样式中,类应该用大写字母命名,即qazxsw poi而不是qazxsw poi。
另一答案【无法在Asynctask Android,java中调用View】我认为问题是您尝试从创建它的其他线程访问视图。通常的方式是使用Graph
graph


    推荐阅读