android - i need to change my listview to extend baseAdapter using the ArrayList<HashMap<String, String>> -
i have activity use list view , display values after fetching mysql database application work fine wnat changed list activity extends baseadapter because need add in row 2 text view.
can me make change ????
this code
user.java
package com.devleb.logindemo; import java.util.date; public class user { string name; public string getname() { return name; } public void setname(string name) { this.name = name; } public date getdate() { return date; } public void setdate(date date) { this.date = date; } date date; }
customadapter.java
package com.devleb.logindemo; import java.util.arraylist; import java.util.date; import android.content.context; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.baseadapter; import android.widget.textview; public class customadapter extends baseadapter { private static arraylist<user> userslist; // private static arraylist name, date; layoutinflater layoutinflater; string[] username; date[] createddate; context context; public customadapter(arraylist<user> result, context c) { userslist = result; context = c; } @override public int getcount() { // todo auto-generated method stub return userslist.size(); } @override public object getitem(int arg0) { // todo auto-generated method stub return userslist.get(arg0); } @override public long getitemid(int arg0) { // todo auto-generated method stub return arg0; } @override public view getview(int position, view arg1, viewgroup parent) { // todo auto-generated method stub layoutinflater = (layoutinflater) context .getsystemservice(context.layout_inflater_service); view row = null; row = layoutinflater.inflate(r.layout.list_item, parent, false); textview txtcreatedate = (textview) row .findviewbyid(r.id.txtcreatedate); txtcreatedate.settext(userslist.get(position).getdate().tostring()); textview txtname = (textview) row.findviewbyid(r.id.name); txtname.settext(userslist.get(position).getname()); return row; } }
now how add custom adapter userlistactivity ???
userlistactivity.java
package com.devleb.logindemo; import java.util.arraylist; import java.util.hashmap; import java.util.list; import org.apache.http.namevaluepair; import org.json.jsonarray; import org.json.jsonexception; import org.json.jsonobject; import android.os.asynctask; import android.os.bundle; import android.app.activity; import android.app.listactivity; import android.content.intent; import android.util.log; import android.view.menu; import android.view.view; import android.widget.adapterview; import android.widget.adapterview.onitemclicklistener; import android.widget.listadapter; import android.widget.listview; import android.widget.simpleadapter; import android.widget.textview; import android.widget.toast; public class userlistactivity extends listactivity { jsonparser jsonparser = new jsonparser(); arraylist<hashmap<string, string>> userslist; private static string url_display_user = "http://10.0.3.2/android_connect/display_user.php"; // json node names private static final string tag_success = "success"; private static final string tag_message = "message"; private static final string tag_id = "id"; private static final string tag_users = "userlist"; private static final string tag_user = "user"; private static final string tag_date = "create_date"; // private static final string tag_name = "name"; // employees jsonarray jsonarray users = null; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_user_list); userslist = new arraylist<hashmap<string, string>>(); new getuserlist().execute(); // getlistview listview lv = getlistview(); lv.setonitemclicklistener(new onitemclicklistener() { @override public void onitemclick(adapterview<?> arg0, view view, int arg2, long arg3) { // string id = ((textview) // view.findviewbyid(r.id.uid)).gettext() // .tostring(); // intent in = new intent(getbasecontext(), statuslist.class); // in.putextra(tag_id, uid); // startactivity(in); } }); } class getuserlist extends asynctask<string, string, string> { /** * before starting background thread show progress dialog * */ @override protected void onpreexecute() { super.onpreexecute(); userlistactivity.this.setprogressbarindeterminatevisibility(true); } @override protected string doinbackground(string... params) { // todo auto-generated method stub // building parameters list<namevaluepair> parametres = new arraylist<namevaluepair>(); // getting json string url jsonobject json = jsonparser.makehttprequest(url_display_user, "get", parametres); // check log cat json reponse log.d("all users: ", json.tostring()); try { // checking success tag int success = json.getint(tag_success); if (success == 1) { // products found // getting array of products users = json.getjsonarray(tag_users); // looping through users (int = 0; < users.length(); i++) { jsonobject c = users.getjsonobject(i); // storing each json item in variable string id = c.getstring(tag_id); string user = c.getstring(tag_user); // 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_user, user); // adding hashlist arraylist userslist.add(map); } return json.getstring(tag_message); } else { return json.getstring(tag_message); } } catch (jsonexception e) { e.printstacktrace(); } return null; } /** * after completing background task dismiss progress dialog * **/ protected void onpostexecute(string result) { // dismiss dialog after getting products if (result != null) { userlistactivity.this .setprogressbarindeterminatevisibility(false); /** * updating parsed json data listview * */ listadapter adapter = new simpleadapter(userlistactivity.this, userslist, r.layout.list_item, new string[] { tag_id, tag_user }, new int[] { r.id.uid, r.id.name }); // updating listview setlistadapter(adapter); toast.maketext(getbasecontext(), result, toast.length_long) .show(); } } } @override public boolean oncreateoptionsmenu(menu menu) { // inflate menu; adds items action bar if present. getmenuinflater().inflate(r.menu.user_list, menu); return true; } }
i know change must done in onpostexecute()
is problem??
public class customadapter extends baseadapter { private static arraylist<user> userslist; // private static arraylist name, date; layoutinflater layoutinflater; string[] username; date[] createddate; context context; public customadapter(arraylist<hashmap<string,string> result, context c) { userslist = result; context = c; } @override public int getcount() { // todo auto-generated method stub return userslist.size(); } @override public object getitem(int arg0) { // todo auto-generated method stub return userslist.get(arg0); } @override public long getitemid(int arg0) { // todo auto-generated method stub return arg0; } @override public view getview(int position, view arg1, viewgroup parent) { //get hashmap hashmap<string,string> map = userlist.get(position); //do ever want hashmap return row; } }
Comments
Post a Comment