【问题标题】:Why isn't setVisibility working on Android ProgressBar?为什么 setVisibility 不能在 Android ProgressBar 上运行?
【发布时间】:2010-09-07 15:12:47
【问题描述】:

如果 ProgressBar 可以在需要时消失,那就太好了。在 applyMenuChoice 中使用 setVisibility.progressBar 有问题吗?在 PrintStatusTask().execute() 中使用 setVisibility.progressBar 的问题在于它会在运行时使应用程序崩溃。

public class Controller extends Activity {
    private ProgressBar progressBar;
    ...

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.controller);
        progressBar = (ProgressBar)findViewById(R.id.progressBar);
        ...

    private boolean applyMenuChoice(MenuItem item) {
        switch (item.getItemId()) {
        case R.id.menuStatus:
            progressBar.setVisibility(View.VISIBLE);
            new PrintStatusTask().execute();
            progressBar.setVisibility(View.GONE);
            ...

【问题讨论】:

    标签: android progress-bar


    【解决方案1】:
    progressBar.setVisibility(View.VISIBLE);
    new PrintStatusTask().execute();
    progressBar.setVisibility(View.GONE);
    

    这就是你正在做的事情: 1.显示进度条 2. 在单独的线程上生成任务 3.隐藏进度条

    整个过程的执行时间不会超过几毫秒。您需要在 PrintStatusTask 类的onPostExecute() 方法中隐藏进度条。

    您需要了解AsyncTask 的execute() 方法是执行另一个线程并且不等待它完成的调用。这就是 AsyncTask 的重点。

    【讨论】:

    • 知道了。谢谢。就是这样。我还需要将 setVisibility(View.VISIBLE) 放在 onPreExecute() 中。嘘!
    • 是progressBar.setVisibility(View.GONE);删除进度条的最佳方法?我希望动画在这种情况下停止并且不吃性能......
    【解决方案2】:

    您是否要在AsyncTask 中隐藏ProgressBar?如果是这样,它必须在onPreExecute 或onPostExecute 中完成(就像所有的 UI 命令一样)。

    另外,使用这样的东西:

    private void toggleProgressBar() {
        switch (progressBar.getVisibility()) {
        case View.GONE:
            progressBar.setVisibility(View.VISIBLE);
            break;
        default:
            progressBar.setVisibility(View.GONE);
            break;
        }
    }
    

    【讨论】:

      猜你喜欢
      • 2017-04-07
      • 1970-01-01
      • 2015-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-02
      • 2014-10-06
      • 1970-01-01
      相关资源
      最近更新 更多