我有一个用户选择的按钮,我弹出一个 AlertDialog 来确定或取消替换某些数据的操作。在我弄清楚它是一个 ASYNCH 过程之后,OK 和 CANCEL 工作正常。我什至停止多次点击。但是,当用户按下 OK 时,我必须将信息与几个任务一起保存到内存中。OK过程大约需要三秒钟,这超出了不耐烦的人的边缘。我想用消息抛出一个不确定的进度条。然而,我对 Java 和 android 的新鲜感正在阻碍我。下面代码中的“上下文”到底是什么?
public void getData(final View v)
{
if(AlertDialogProcessing==0)
{
final String title="Set Image to Wallpaper";
final String message="Press OK to set as Wallpaper or CANCEL";
final String ok="OK";
final String cancel="CANCEL";
final AlertDialog.Builder alertbox = new AlertDialog.Builder(this);
try{
alertbox.setMessage(message);
alertbox.setTitle(title);
alertbox.setPositiveButton(ok,new DialogInterface.OnClickListener(){
public void onClick(DialogInterface arg0, int arg1)
{
Vibrate(ClickVibrate);
Drawable drawable= getSun(imageSelect);
ProgressDialog dialog = ProgressDialog.show(context, "Loading", "Please wait...", true); //<<<<<<<<<<ERROR at context
AlertDialogProcessing=1;
SaveData(drawable,1);
AlertDialogProcessing=0;
dialog.dismiss();
Toast.makeText(getApplicationContext(), "Data Saved.",Toast.LENGTH_LONG).show();
}
});
alertbox.setNegativeButton(cancel,new DialogInterface.OnClickListener(){
public void onClick(DialogInterface arg0, int arg1){
AlertDialogProcessing=0;
Vibrate(ClickVibrate);
}
});
//alertbox.setCanceledOnTouchOutside(false); // maybe a 4.0 problem
alertbox.show();
} catch(Exception e){
//TODO Handle BadTokenException.
}
}
}