0

似乎这个主题有几个变化。我AlertBox向用户显示是否要保存此项目?如果他们回复正常,那么我希望将Alertbox其替换为ProgressDialog框,然后当项目完成保存后,它就会消失。

下面的当前代码正确显示了确定/取消AlertBox和关闭,并正确显示了 toast。但是,如果用户选择“确定”,则ProgressDialog显示全部完成并且永远不会消失。OK/Cancel 按钮保持按下状态,直到项目被保存。如果用户按 OK,我希望AlertBox消失,然后ProgressDialog在保存完成后显示并关闭它。

{
 Vibrate(ClickVibrate); 
 final ProgressDialog Dialog = ProgressDialog.show(v.getRootView().getContext(), "Loading", "Please wait...", true);
if(AlertDialogProcessing==0)
{    
ProgressDialog progress;  
final String title="Save Item";
final String message="Press OK to save or CANCEL.";
final String ok="OK";
final String cancel="CANCEL";

final AlertDialog.Builder alertbox = new AlertDialog.Builder(this);
alertbox.setCancelable(true);
alertbox.setIcon(android.R.drawable.ic_dialog_alert);
alertbox.setTitle(title);
alertbox.setMessage(message);
alertbox.setNegativeButton(cancel, null);

final AlertDialog dlg = alertbox.create();

 alertbox.setPositiveButton(ok,new DialogInterface.OnClickListener()
   {  
     public void onClick(DialogInterface arg0, int arg1)
     {  
      dlg.dismiss();
      Dialog.show();
      Vibrate(ClickVibrate); 
      Drawable drawable= getItem(imageSelect);   
      AlertDialogProcessing=1;   
      //task that takes 3 seconds
      AlertDialogProcessing=0;
      Toast.makeText(getApplicationContext(), "Item Saved.", Toast.LENGTH_LONG).show();   
    } 
  });
 alertbox.setNegativeButton(cancel,new DialogInterface.OnClickListener(){ public void onClick(DialogInterface arg0, int arg1){AlertDialogProcessing=0; Vibrate(ClickVibrate); } });
 alertbox.show();
 }
 Dialog.dismiss();
}
4

1 回答 1

1

你在正面按钮的内部ProgressDialog.show()和内部都调用了,难怪没有显示。如果保存过程需要一些时间,以至于您需要 a ,我强烈建议您使用该类。它在工作线程上运行任务,并让您可以使用当前任务进度更新 UI。希望这可以帮助。ProgressDialog.dismiss()onClick()ProgressDialogProgressDialogAsyncTask

于 2012-07-21T14:15:12.310 回答