在异步任务中更改 onPostexecute 中的可见性设置
Posted
技术标签:
【中文标题】在异步任务中更改 onPostexecute 中的可见性设置【英文标题】:Change visibility settings in onPostexecute in async task 【发布时间】:2020-01-18 03:55:57 【问题描述】:我正在使用AsyncTask
通过 Jsoup 解析来自网站的数据。在我的布局(片段)中,我想显示 ProgressBar
直到加载数据。加载数据后,我想将ProgressBar
的可见性更改为INVISIBLE
,并将ScrollView
的可见性更改为VISIBLE
(以显示数据)。我在 onPostExecute() 方法中尝试过,但它不起作用。
private class Erste extends AsyncTask<Void, Void, Void>
private ProgressBar progressBar;
private ScrollView scrollView;
@Override
protected void onPostExecute(Void result)
progressBar.findViewById(R.id.progressbar);
progressBar.setVisibility(progressBar.INVISIBLE);
scrollView.findViewById(R.id.tabelle1);
scrollView.setVisibility(scrollView.VISIBLE);
...
【问题讨论】:
分配给视图的 ID 不正确。 【参考方案1】:首先你应该让你的ProgressBar
在preExecute
方法上可见,ScrollView
不可见。 doInBackground
完成后,您应该按照您的要求进行操作。相反。
【讨论】:
【参考方案2】:progressBar 和scrollView 没有分配对象。你应该试试这样的……
private class Erste extends AsyncTask<Void, Void, Void>
private ProgressBar progressBar;
private ScrollView scrollView;
@Override
protected void onPostExecute(Void result)
progressBar = findViewById(R.id.progressbar);
progressBar.setVisibility(progressBar.INVISIBLE);
scrollView = findViewById(R.id.tabelle1);
scrollView.setVisibility(scrollView.VISIBLE);
...
【讨论】:
以上是关于在异步任务中更改 onPostexecute 中的可见性设置的主要内容,如果未能解决你的问题,请参考以下文章
如何在异步任务中调用意图?或者如何在 onPostExecute 中开始新的活动?
从 onPostExecute(String result) 开始活动不设置 ui 标志