最近做一个单词卡项目。每次发给用户的是一个单元,该单元单词背诵完后,弹出对话框:
如果用户点击“确定”,则从服务器下载下一个单元的单词。
我想设计成这样一种效果:用户点击“确定”后,弹出一个ProgressDialog,当客户端(android手机)成功地从服务端下载完下一个单元的单词后,ProgressDialog自动消失。重新显示背单词界面。
在网上搜了很多资料,终于成功,具体代码是(只写关键部分):
public class CicooPuzzleMode extends Activity {
private ProgressDialog mpDialog;
private Handler handler;
@Override
protected void onCreate(Bundle savedInstanceState) {
handler = new Handler(){
@Override
public void handleMessage(Message msg){
if(msg.what == 0){
mpDialog.dismiss();
}
super.handleMessage(msg);
}
};
}
private Dialog buildDialogFinish(Context context) {
AlertDialog.Builder builder = new AlertDialog.Builder(
CicooPuzzleMode.this);
builder.setIcon(android.R.drawable.ic_menu_help);
builder.setMessage("恭喜你背完本单元单词,点击确定继续学习,点击取消退出程序!");
builder.setPositiveButton(R.string.alert_dialog_ok,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
mpDialog = new ProgressDialog(CicooPuzzleMode.this);
mpDialog.setProgressStyle(ProgressDialog.STYLE_SPINNER);
mpDialog.setTitle("");
mpDialog.setMessage("加载中...");
mpDialog.setIndeterminate(true);
mpDialog.show();
new Thread(){
public void run(){
try{
//这里写ProgressDialog消失前,你要做的事情
handler.sendEmptyMessage(0);
}catch(Exception e){
e.printStackTrace();
}
}
}.start();
}
});
builder.setNegativeButton(R.string.alert_dialog_cancle,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int whichButton) {
}
});