android - Need to create a ProgressDialog before json parsing data -
im going create main screen activity before android json parsing activity, content is
main_screen.xml
<?xml version="1.0" encoding="utf-8"?> <linearlayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" android:gravity="center_horizontal"> <!-- sample dashboard screen 2 buttons --> <button android:id="@+id/btnviewproducts" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="view products" android:layout_margintop="25dip"/> </linearlayout> androidjsonparsingactivity.java
public class androidjsonparsingactivity extends listactivity { // url make request private static string url = "http://api.androidhive.info/contacts/"; // json node names private static final string tag_contacts = "contacts"; private static final string tag_id = "id"; private static final string tag_name = "name"; private static final string tag_email = "email"; private static final string tag_address = "address"; // contacts jsonarray jsonarray contacts = null; @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.main); // hashmap listview arraylist<hashmap<string, string>> contactlist = new arraylist<hashmap<string, string>>(); // creating json parser instance jsonparser jparser = new jsonparser(); // getting json string url jsonobject json = jparser.getjsonfromurl(url); try { // getting array of contacts contacts = json.getjsonarray(tag_contacts); // looping through contacts for(int = 0; < contacts.length(); i++){ jsonobject c = contacts.getjsonobject(i); // storing each json item in variable string id = c.getstring(tag_id); string name = c.getstring(tag_name); string email = c.getstring(tag_email); string address = c.getstring(tag_address); // creating new hashmap hashmap<string, string> map = new hashmap<string, string>(); // adding each child node hashmap key => value map.put(tag_id, id); map.put(tag_name, name); map.put(tag_email, email); map.put(tag_address, address); // adding hashlist arraylist contactlist.add(map); } } catch (jsonexception e) { e.printstacktrace(); } /** * updating parsed json data listview * */ listadapter adapter = new simpleadapter(this, contactlist, r.layout.list_item, new string[] { tag_name, tag_email, tag_address }, new int[] { r.id.name, r.id.email, r.id.address }); setlistadapter(adapter); // selecting single listview item listview lv = getlistview(); // launching new screen on selecting single listitem lv.setonitemclicklistener(new onitemclicklistener() { @override public void onitemclick(adapterview<?> parent, view view, int position, long id) { // getting values selected listitem string name = ((textview) view.findviewbyid(r.id.name)).gettext().tostring(); string email = ((textview) view.findviewbyid(r.id.email)).gettext().tostring(); string address = ((textview) view.findviewbyid(r.id.address)).gettext().tostring(); // starting new intent intent in = new intent(getapplicationcontext(), singlemenuitemactivity.class); in.putextra(tag_name, name); in.putextra(tag_email, email); in.putextra(tag_address, address); startactivity(in); } }); } } i need create progressdialog before json parser data , close when parsing data has complete
i'm new in android advanced
try this...use asynctask , use below code.
private progressdialog progressdialog; // class variable private void showprogressdialog(string title, string message) { progressdialog = new progressdialog(this); progressdialog.settitle(title); // set title progressdialog.setmessage(message); // set message progressdialog.setcancelable(false); progressdialog.show(); } onpreexecute()
showprogressdialog("please wait...", "connecting server data"); onpostexecute()
if(progressdialog != null && progressdialog.isshowing()) { progressdialog.dismiss(); }
Comments
Post a Comment