Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Show ProgressDialog Android

I have an EditText which takes a String from the user and a searchButton. When the searchButton is clicked, it will search through the XML file and display it in the ListView.

I am able to take input from the user, search through the XML file and display the usersearched value in the ListView also.

What I want is to display a ProgressDialog after the searchButton is clicked like "PLEASE WAIT...RETRIEVING DATA..." or something like that and dismiss it when the data is shown.

public class Tab1Activity extends ListActivity { private Button okButton; private Button searchButton; Toast toast; String xml;  private TextView searchText; private String searchTextString; HashMap<String, String> o; ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();  @Override public void onCreate(Bundle savedInstanceState) {     super.onCreate(savedInstanceState);     setContentView(R.layout.tab1);      searchButton = (Button) findViewById(R.id.search_button);     searchButton.setOnClickListener(new View.OnClickListener() {          public void onClick(View v) {             // TODO Auto-generated method stub             System.out.print("hello");              searchText = (TextView) findViewById(R.id.search_text);             searchTextString = searchText.getText().toString();             readXml(searchTextString);          }     });  }  private void readXml(String searchTextString1) {     ArrayList<HashMap<String, String>> mylist = new ArrayList<HashMap<String, String>>();      String xml = XMLfunctions.getXML();             //Here XMLfunctions is class name which parse xml     Document doc = XMLfunctions.XMLfromString(xml);      int numResults = XMLfunctions.numResults(doc);      if ((numResults <= 0)) {         Toast.makeText(Tab1Activity.this, "Testing xmlparser",                 Toast.LENGTH_LONG).show();         finish();     }      NodeList nodes = doc.getElementsByTagName("result");      for (int i = 0; i < nodes.getLength(); i++) {         HashMap<String, String> map = new HashMap<String, String>();          Element e = (Element) nodes.item(i);         String nameMapString = XMLfunctions.getValue(e, "name");             if ( nameMapString.toLowerCase().indexOf(searchTextString1.toLowerCase()) != -1 )   // != -1 means string is present in the search string             {                 map.put("id", XMLfunctions.getValue(e, "id"));                 map.put("name",  XMLfunctions.getValue(e, "name"));                 map.put("Score",  XMLfunctions.getValue(e, "score"));                 mylist.add(map);             }     }      ListAdapter adapter = new SimpleAdapter(this, mylist,             R.layout.parsexml, new String[] { "name", "Score" }, new int[] {                     R.id.item_title, R.id.item_subtitle });      setListAdapter(adapter);      final ListView lv = getListView();     lv.setTextFilterEnabled(true);     lv.setOnItemClickListener(new OnItemClickListener() {         public void onItemClick(AdapterView<?> parent, View view,                 int position, long id) {             @SuppressWarnings("unchecked")             HashMap<String, String> o = (HashMap<String, String>) lv                     .getItemAtPosition(position);                   Toast.makeText(Tab1Activity.this,                          "Name "+o.get("name")+"  Clicked", Toast.LENGTH_LONG)                         .show();                          }     }); } 
like image 327
captaindroid Avatar asked Mar 22 '12 00:03

captaindroid


People also ask

How do I show download percentage on android?

If you downloading a file or photos from Google, you can view the download status from the notification bar, simple. Just scroll the screen from up to down, there you will see the notification bar with Google icon downloading symbol or arrow.

What is progress dialog in android?

ProgressDialog is a modal dialog, which prevents the user from interacting with the app. Instead of using this class, you should use a progress indicator like ProgressBar , which can be embedded in your app's UI. Alternatively, you can use a notification to inform the user of the task's progress.

What can I use instead of ProgressDialog?

ProgressBar is best alternative for ProgressDialog.


1 Answers

Declare your progress dialog:

ProgressDialog progress; 

When you're ready to start the progress dialog:

progress = ProgressDialog.show(this, "dialog title",     "dialog message", true); 

and to make it go away when you're done:

progress.dismiss(); 

Here's a little thread example for you:

// Note: declare ProgressDialog progress as a field in your class.  progress = ProgressDialog.show(this, "dialog title",   "dialog message", true);  new Thread(new Runnable() {   @Override   public void run()   {     // do the thing that takes a long time      runOnUiThread(new Runnable() {       @Override       public void run()       {         progress.dismiss();       }     });   } }).start(); 
like image 187
dldnh Avatar answered Sep 17 '22 13:09

dldnh