是没有进展对话

时间:2011-11-14 23:57:14

标签: java android

我想知道是否有人有一个是没有对话框的例子,当按下是时它会显示背景活动的进度。

当按下yes时,我的应用程序将数据插入SQL Server数据库,这可能需要一些时间。尽管在发生这种情况时对话框是模型,但向用户显示某些内容正在发挥作用会很好。

干杯,

麦克

1 个答案:

答案 0 :(得分:1)

显示进步的最大问题是,你必须知道这需要多长时间。我已经说完了25%,那么你需要知道100%是什么。使用SQL查询,你真的不知道。你只知道这需要一些时间。所以你真正想做的不是表现出进步,而是表现出“忙碌”。您可以使用设置为indeterminate属性设置为true的ProgressBar来执行此操作。

要创建一个inteterminate进度条,这样的事情应该有效:

ProgressBar progressBar = activity.findViewById(progressBarID);
progressBar.setIndeterminate(true)
progressBar.setVisibility(View.VISIBLE);
AsyncTask<Void, Void, Void> aTask = new AsyncTask<Void, Void, Void>(){
  @Override
  protected Void doInBackground(Void... arg0) {
    //Do your operations here
    return null;
  }

  @Override
  protected void onPostExecute(Void result) {
    progressBar.setVisibility(View.GONE);
            //Wrap up anything here, like closing the popup.
  }
};
aTask.execute((Void)null);

AsyncTask非常酷,因为它会在事件队列的后台执行操作,但在事件队列上调用onPostExecute。如果您愿意,可以更改返回类型和参数,我只使用了所有空隙。如果您有自定义构建的对话框,则可以在对话框中显示进度条。如果没有,它可以是活动中的隐藏元素,您可以关闭“是/否”对话框,然后调用它。