i'm developing social/messaging app android on android studio, , want know how populate listview jsonarray(friends list).
my array (from parse currentuser file:
"friends": ["friend1","friend2","friend3"] code activity:
package com.mycompany.myapp; import android.os.bundle; import android.support.annotation.nullable; import android.support.v4.app.fragment; import android.view.layoutinflater; import android.view.view; import android.view.viewgroup; import android.widget.*; import com.parse.parseuser; import org.json.jsonarray; import org.json.jsonexception; import java.util.arraylist; import java.util.list; public class friendstab extends fragment { private listview friendslst; parseuser current = parseuser.getcurrentuser(); jsonarray friends; @override public view oncreateview(layoutinflater inflater, @nullable viewgroup container, @nullable bundle savedinstancestate) { view v =inflater.inflate(r.layout.friendsview,container,false); friendslst = (listview)v.findviewbyid(r.id.friends_list_view); friends = current.getjsonarray("friends"); return v; } } thanks!
ok, i'll out.
instantiate container views , components in activity in oncreate(). create object of adapter class can call it's constructor , use it.
private listview lvfriends; private friendadapter friendadapter; // adapter handle data @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.friendsview); // <-- container layout name? // instantiate adapter class friendadapter = new friendadapter(); // instantiate listview lvfriends = (listview) findviewbyid(r.id.friends_list_view); // set adapter friendadapter = new friendadapter(mainactivity, parseuser); // pass parseuser object adapter (or whatever information want) lvfriends.setadapter(friendadapter); // set adapter } now in adapter class following
public class friendadapter extends baseadapter { private context mcontext; private parseuser mparseuser; // constructor public friendadapter(context context, parseuser parseuser) { this.mcontext = context; this.mparseuser = parseuser; } @override public int getcount() { // return size of friends parseuser object } @override public long getitemid(int position) { return position; } @override public object getitem(int position) { // return individual item parseuser object } @override public view getview(int position, view convertview, viewgroup parent) { // did not post item view goes container // assume textview view view = convertview; viewholder holder; // use view holder pattern if (view == null) { layoutinflater inflater = (layoutinflater) mcontext.getsystemservice(context.layout_inflater_service); view = inflater.inflate(r.layout.item_friend, parent, false); holder = new viewholder(); holder.tvfriendname = (textview) view.findviewbyid(r.id.tv_friend_name); view.settag(holder); } else { holder = (viewholder) view.gettag(); } return voew; } private static class viewholder { private textview tvfriendname; } } hopefully helps. cheers!
Comments
Post a Comment