在异步任务中更改 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】:

首先你应该让你的ProgressBarpreExecute方法上可见,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 标志

在 Asynctask 的 onPostExecute() 方法中更改片段

在android中链接2个异步任务的正确方法

异步任务的空指针异常

如何在 Android 中使用异步任务通过数组列表更新列表视图?