異步進程對話框在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