I have made a ProgressDialog that should appear immediately before a web service call or some data loading in Button click event
  
 
Please see below codes,
 
- addTask = FindViewById<Button>(Resource.Id.myButton);  
- addTask.Click += (sender, e) => {  
-                   
-                 progress = new Android.App.ProgressDialog(this);  
-                 progress.Indeterminate = true;  
-                 progress.SetProgressStyle(Android.App.ProgressDialogStyle.Spinner);  
-                 progress.SetMessage("Loading... Please wait...");  
-                 progress.Show();  
-   
- XmlSerializer xm=new XmlSerializer(typeof(n107_180_68_111.BizInfoFinderSearchResults));  
-                   
-                 StringWriter writer = new StringWriter();  
-                 xm.Serialize(writer, result1);  
-                 string xmlContent = writer.ToString();  
- XmlDocument doc = new XmlDocument();  
-                 doc.LoadXml(xmlContent);  
-                 doc.Save(Console.Out);  
-                 try  
-                 {  
-   
-   
-                     XmlNodeList siteResults = doc.GetElementsByTagName("SiteResults");  
-   
-                     bool titleRow = true;  
-   
-                     if (!object.ReferenceEquals(siteResults, null))  
-                     {  
-                         XmlNodeList siteSearchResults = siteResults[0].ChildNodes;  
-                         int count = siteSearchResults.Count;  
-                         for (int i = 0; i < count; i++)  
-                         {  
-                             if (!object.ReferenceEquals(siteSearchResults, null))  
-                             {  
-                                 foreach (XmlNode siteSearchResult in siteSearchResults)  
-                                 {  
-                                     if (siteSearchResult.InnerText != null)  
-                                     {     
-                                         string siteID = siteSearchResult.ChildNodes[0].InnerText.Trim();  
-                                         int totalhits = Convert.ToInt32(siteSearchResult.ChildNodes[5].InnerText.Trim());  
-                                         XmlNode results = siteSearchResult.ChildNodes[7];  
-                                         titleRow = true;  
-                                         finalResults[i] = new DataTable();  
-                                         if (!object.ReferenceEquals(results, null))  
-                                         {  
-                                             int rowIndex = 0;  
-   
-                                             foreach (XmlNode result in results.ChildNodes)  
-                                             {  
-                                                 if (titleRow)  
-                                                 {  
-                                                     foreach (XmlNode col in result.ChildNodes)  
-                                                     {  
-                                                         finalResults[i].Columns.Add(col.InnerText.Trim());  
-                                                     }  
-                                                     finalResults[i].Columns.Add("SiteID");  
-                                                     finalResults[i].Columns.Add("TotalHits");  
-                                                     titleRow = false;  
-                                                 }  
-                                                 else  
-                                                 {  
-                                                     if (rowIndex > 0)  
-                                                     {  
-                                                         int colIndex = 0;  
-                                                         DataRow row = finalResults[i].NewRow();  
-   
-                                                         foreach (XmlNode col in result.ChildNodes)  
-                                                         {  
-                                                             row[colIndex] = col.InnerText.Trim();  
-                                                             colIndex++;  
-                                                         }  
-                                                         row[colIndex] = siteID;  
-                                                         row[colIndex + 1] = totalhits;  
-                                                         finalResults[i].Rows.Add(row);  
-                                                     }  
-                                                 }  
-                                                 rowIndex++;  
-                                             }  
-                                         }  
-                                         i++;  
-                                     }  
-                                     else  
-                                     {  
-                                         count--;  
-                                     }  
-                                 }  
-   
-   
-   
-                                 for (int j = 0; j < count; j++)  
-                                 {  
-                                     finalResults[0].Merge(finalResults[j]);  
-                                     finalResults[0].Columns["Name"].SetOrdinal(0);  
-                                 }  
-                             }  
-                         }  
-                     }  
-                     if (!finalResults[0].Columns.Contains("Status"))  
-                     {  
-                         finalResults[0].Columns.Add(new DataColumn("Status", typeof(String)));  
-                     }  
-                     if (!finalResults[0].Columns.Contains("DetailUri"))  
-                     {  
-                         finalResults[0].Columns.Add(new DataColumn("DetailUri", typeof(String)));  
-                     }  
-                     if (!finalResults[0].Columns.Contains("Score"))  
-                     {  
-                         finalResults[0].Columns.Add(new DataColumn("Score", typeof(Double)));  
-                     }  
-                     if (finalResults[0].Columns.Contains("Type"))  
-                     {  
-                         if (!finalResults[0].Columns.Contains("Status"))  
-                         {  
-                             finalResults[0].Columns["Type"].ColumnName = "Status";  
-                         }  
-                     }  
-                     if (finalResults[0].Columns.Contains("EntityName"))  
-                     {  
-                         if (!finalResults[0].Columns.Contains("Name"))  
-                         {  
-                             finalResults[0].Columns["EntityName"].ColumnName = "Name";  
-                         }  
-                     }  
-                     foreach (DataRow row in finalResults[0].Rows)   
-                     {  
-                         string name = row["Name"].ToString().ToLower();  
-   
-                         string keyword = et1.Text.ToString().ToLower();  
-                         double score = System.Math.Round((GOATechnologies.Tools.StringMatch.Match(name, keyword) * 100), 2);  
-                         row["Score"] = score;  
-                     }  
-                 }  
-   
-                 catch(Exception ex) {  
-                     string msg = ex.Message;  
-                 }  
-   
-                 dt = finalResults [0];  
-                 MylistViewAdapter adapter=new MylistViewAdapter(this,businesslist); - 				               lv1.Adapter = adapter; -                 progress.Hide(); 
 
please advice..