我想在单击列表项时打开ProgressDialog,该列表项打开Web服务所单击项的数据。 需要出现ProgressDialog,直到单击的项的WebContent被打开。
我知道使用进度对话框的代码,但我不知道如何解雇它。
我听说Handler将用于解除Progress Dialog,但我没有找到最终使用Handler的任何有价值的例子。
有人可以告诉我如何使用处理程序来关闭进度对话框?
谢谢, 大卫
答案 0 :(得分:14)
嗨,这就是你想要的
public void onClick(View v)
{
mDialog = new ProgressDialog(Home.this);
mDialog.setMessage("Please wait...");
mDialog.setCancelable(false);
mDialog.show();
new Thread(new Runnable()
{
@Override
public void run()
{
statusInquiry();
}
}).start();
}
这是名为
的网络服务void statusInquiry()
{
try
{
//calling webservice
// after then of whole web part you will send handler a msg
mHandler.sendEmptyMessage(10);
}
catch (Exception e)
{
mHandler.sendEmptyMessage(1);
}
}
这里是处理程序代码
Handler mHandler = new Handler()
{
public void handleMessage(android.os.Message msg)
{
super.handleMessage(msg);
switch (msg.what)
{
case 10:
mDialog.dismiss();
break;
}
}
}
};
答案 1 :(得分:0)
解决方案可能是这样的:
ProgressDialog progressDialog = null;
// ...
progressDialog = ProgressDialog.show(this, "Please wait...", true);
new Thread() {
public void run() {
try{
// Grab your data
} catch (Exception e) { }
// When grabbing data is finish: Dismiss your Dialog
progressDialog.dismiss();
}
}.start();