异步进程对话框在android中的应用程序中未显示。有人可以告诉我问题是什么吗?异步进程对话框在Android中的应用程序中未显示android
我的代码
public void onClick(View v)
{
new FetchTask(getBaseContext()).execute(null);
}
public class FetchTask extends AsyncTask<Object, ArrayList,ArrayList>
{
private ProgressDialog dlg;
private Context ctx;
public FetchTask(Context context) {
ctx = context;
}
@Override
protected void onPreExecute() {
dlg = new ProgressDialog(ctx);
dlg.setMessage("Loading....");
dlg.show();
super.onPreExecute();
}
@Override
protected void onPostExecute(ArrayList parserValue) {
dlg.dismiss();
for(int i=0;i<parservalue.size();i++)
{
DomParserDataSet dataset=(DomParserDataSet)parservalue.get(i);
if(dataset.getToken_string().length()>1)
{
Intent homeIntent=new Intent(ctx,HelloTabWidget.class);
homeIntent.putExtra("strUserName", username);
homeIntent.putExtra("strPassword",password);
homeIntent.putExtra("questGroupId",dataset.getQuest_group_id());
homeIntent.putExtra("userid",dataset.getUser_id());
homeIntent.putExtra("systemuserid", dataset.getSystem_user_id());
homeIntent.putExtra("providerid",dataset.getIndex_provider_id());
startActivity(homeIntent);
//startActivity(new Intent(this,HelloTabWidget.class));
}
else
{
DomParserDataSet dataset1=(DomParserDataSet)parservalue.get(i);
AlertDialog.Builder alertbox = new AlertDialog.Builder(ctx);
alertbox.setMessage(dataset1.getError_value());
alertbox.setNeutralButton("Ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int arg1) {
// the button was clicked
dialog.cancel();
}
});
// show it
alertbox.show();
}
}
// display data
}
@Override
protected ArrayList doInBackground(Object... arg0) {
try
{
username=edtUserName.getText().toString();
password=edtPassword.getText().toString();
WebService service=new WebService();
String webservicevalue=service.callServer(SOAP_ACTION,"", username,password,URL);
webservicevalue=decodeXMLData(webservicevalue);
DomParser xmlParser=new DomParser();
parservalue=xmlParser.parseXmlFile(webservicevalue);
String parservalue1=Integer.toString(parservalue.size());
Log.d("parser value size is",parservalue1);
}
catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
return parservalue;
}
}
谁能告诉我我有什么改变?
只是为了排除它可能是别的:你是否尝试删除除了与`ProgressDialog`相关的代码之外的所有代码。运行你的应用程序,看看它是否仍然不显示(只需要在'doInBackground`中放置一个500毫秒的睡眠或某些东西,以便模拟一些处理时间)。 – Nailuj 2010-11-30 16:13:22