android - friends profile pics not showing with names in list view -


i using 2 activities 1 having login button makes user login facebook , other having listview. after successfull login list view activity opens should display friends names , profile pics in list view. name appearing. can please tell me error in code.

            public class loginactivity extends activity {                  private static final string[] permissions = new string[] { "publish_stream",                         "publish_checkins", "read_stream", "offline_access", "friends_photos" };                  public static final string app_id = "**************";                 private facebook facebook = new facebook(app_id);                 private asyncfacebookrunner masyncrunner = new asyncfacebookrunner(facebook);                 private progressdialog mprogress;                 private handler mhandler = new handler();                 private progressdialog mspinner;                 private handler mrunonui = new handler();                 string filename = "androidsso_data";                 private sharedpreferences mprefs;                  arraylist<string> friends;                 string _error;                 // private string graph_or_fql;                 private listview list;                 textview tv;                 button loginbutton;                 private uilifecyclehelper uihelper;                 private contextwrapper uiactivity;                  @override                 public void oncreate(bundle savedinstancestate) {                     super.oncreate(savedinstancestate);                     this.requestwindowfeature(window.feature_no_title);                     getwindow().setsoftinputmode(                             windowmanager.layoutparams.soft_input_state_always_hidden);                     setcontentview(r.layout.login);                      friends = new arraylist<string>();                      tv = (textview) loginactivity.this.findviewbyid(r.id.textview1);                     loginbutton = (button) findviewbyid(r.id.button_login);                      loginbutton.setonclicklistener(new view.onclicklistener() {                          @suppresswarnings("deprecation")                         @override                         public void onclick(view v) {                              if (!facebook.issessionvalid()) {                                 facebook.authorize(loginactivity.this, permissions,                                         new logindialoglistener());                             }                         }                     });                 }                  public void onactivityresult(int requestcode, int resultcode, intent data) {                     super.onactivityresult(requestcode, resultcode, data);                     log.d("fb demo app", "onactivityresult(): " + requestcode);                     facebook.authorizecallback(requestcode, resultcode, data);                 }                  private class logindialoglistener implements dialoglistener {                      public void oncomplete(bundle values) {                         savecredentials(facebook);                         getalbumsdata task = new getalbumsdata();                         task.execute();                         mhandler.post(new runnable() {                             public void run() {                                   masyncrunner.request("me/friends", new friendsrequestlistener());                              }                         });                      }                   private class friendsrequestlistener implements requestlistener {                     string frienddata;                      // method runs when request complete                     public void oncomplete(string response, object state) {                         log.v("", "friendlistrequestoncomplete");                         // create copy of response can read in run() method.                         frienddata = response;                         log.v("frienddata--", "" + frienddata);                         // create method run on ui thread                         loginactivity.this.runonuithread(new runnable() {                             @suppresswarnings("deprecation")                             public void run() {                                 try {                                     // parse json data                                     jsonobject json;                                     json = util.parsejson(frienddata);                                      // jsonarry our response jsonobject                                     jsonarray friendarray = json.getjsonarray("data");                                      log.v("friendarray--", "" + friendarray);                                      (int = 0; < friendarray.length(); i++) {                                         jsonobject frnd_obj = friendarray.getjsonobject(i);                                         friends.add(frnd_obj.getstring("name"));                                      }                                      intent ide = new intent(loginactivity.this, frndactivity.class);                                      ide.putstringarraylistextra("friends", friends);                                      startactivity(ide);                                     finish();                                  }                                 catch (jsonexception e) {                                     // todo auto-generated catch block                                     e.printstacktrace();                                 }                             }                         });                     }                   @override                 public boolean oncreateoptionsmenu(menu menu) {                     menuinflater inflater = getmenuinflater();                     inflater.inflate(r.menu.main, menu);                     final menuitem item = menu.finditem(r.id.action_settings);                      return true;                 }              }           ,  

the frnd activity having list view is:

        public class frndactivity extends activity {             private button continuebutton;             textview tv;             listview lv;             itemadapter adapter1;             arraylist<string> friends;              private static final string[] permissions = new string[] { "read_friendlists" };             public static final string app_id = "***********";             private facebook facebook = new facebook(app_id);             private asyncfacebookrunner masyncrunner = new asyncfacebookrunner(facebook);             private handler mhandler;             private progressdialog mspinner;              string filename = "androidsso_data";             protected static jsonarray jsonarray;             protected string graph_or_fql;             private sharedpreferences mprefs;             private handler mrunonui = new handler();              @override             protected void oncreate(bundle savedinstancestate) {                 // todo auto-generated method stub                 mhandler = new handler();                 super.oncreate(savedinstancestate);                 this.requestwindowfeature(window.feature_no_title);                 getwindow().setsoftinputmode(                         windowmanager.layoutparams.soft_input_state_always_hidden);                 setcontentview(r.layout.friendlist_screen);                  if (android.os.build.version.sdk_int > 9) {                     strictmode.threadpolicy policy = new strictmode.threadpolicy.builder()                             .permitall().build();                     strictmode.setthreadpolicy(policy);                 }                  intent = getintent();                 friends = i.getstringarraylistextra("friends");                 log.v("sizenext--", "" + friends.size());                 lv = (listview) findviewbyid(r.id.friendslist);                 arrayadapter<string> adapter = new arrayadapter<string>(getbasecontext(),                         r.layout.rowlayout, r.id.rowtext_top, friends);                   mspinner = new progressdialog(lv.getcontext());                 mspinner.requestwindowfeature(window.feature_no_title);                 mspinner.setmessage("loading...");                  tv = (textview) findviewbyid(r.id.friendstext);                  continuebutton = (button) findviewbyid(r.id.continuebutton);                 continuebutton.setonclicklistener(new onclicklistener() {                      @override                     public void onclick(view v) {                         // todo auto-generated method stub                         intent intent = new intent(frndactivity.this, logoutactivity.class);                         startactivity(intent);                         finish();                      }                 });             }              class itemadapter extends baseadapter {                  private final bitmap bitmap = null;                 final layoutinflater minflater;                  private class viewholder {                     public textview name;                     public textview id;                     public imageview pro_image;                  }                  public itemadapter() {                     // todo auto-generated constructor stub                     super();                     minflater = (layoutinflater) getsystemservice(context.layout_inflater_service);                 }                  // @override                 public int getcount() {                     return friends.size();                 }                  // @override                 public object getitem(int position) {                     return position;                 }                  // @override                 public long getitemid(int position) {                     return position;                 }                  @override                 public view getview(int position, view convertview, viewgroup parent) {                     view view = convertview;                     final viewholder holder;                      if (convertview == null) {                          view = minflater.inflate(r.layout.rowlayout, parent, false);                          holder = new viewholder();                         holder.name = (textview) view.findviewbyid(r.id.rowtext_top);                         holder.pro_image = (imageview) view.findviewbyid(r.id.profilepicture);                         holder.id = (textview) view.findviewbyid(r.id.id);                         view.settag(holder);                     }                     else {                         holder = (viewholder) view.gettag();                     }                      string[] data = friends.get(position).split("~~~");                      holder.name.settext("" + data[0]);                     holder.id.settext("" + data[1]);                     holder.pro_image.setimagebitmap(bitmap);                      string imageurl;                     bitmap bitmap = null;                     log.d("", "loading picture");                     string graph_api = "https://graph.facebook.com/me/friends?";                     string id = null;                     imageurl = "http://graph.facebook.com/" + id + "/picture?type=small";                     try {                         log.v("imageurl--", "" + imageurl);                         bitmap = bitmapfactory.decodestream((inputstream) new url(imageurl)                                 .getcontent());                     }                     catch (exception e) {                         log.d("and:", "loading picture failed");                         e.printstacktrace();                     }                      return view;                 }              }         }      if find error in code please tell.. donot understand how fetch profile pics. please not suggest other code different this. want know mistake in code?      xml layouts:     rowlayout:      <linearlayout xmlns:android="http://schemas.android.com/apk/res/android"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:layout_gravity="center_horizontal"         android:orientation="horizontal" >          <imageview             android:id="@+id/profilepicture"             android:layout_width="60dp"             android:layout_height="60dp" />          <linearlayout             android:layout_width="fill_parent"             android:layout_height="wrap_content"             android:layout_gravity="center_vertical"             android:layout_marginleft="15dp"             android:orientation="vertical" >              <textview                 android:id="@+id/rowtext_top"                 android:layout_width="wrap_content"                 android:layout_height="wrap_content"                 android:text="name"                 android:textsize="18sp" />              <textview                 android:id="@+id/id"                 android:layout_width="wrap_content"                 android:layout_height="wrap_content"                 android:text="id"                 android:textsize="12sp"                 android:visibility="invisible" />         </linearlayout>      </linearlayout>      friendlist_screen has list view ,     login has 1 button 

your getting freind name using below code :

frnd_obj.getstring("name") 

so use below code getting friend profile picture url:

frnd_obj.getjsonobject("picture").getjsonobject("data").getstring("url") 

Comments

Popular posts from this blog

assembly - 8086 TASM: Illegal Indexing Mode -

Java, LWJGL, OpenGL 1.1, decoding BufferedImage to Bytebuffer and binding to OpenGL across classes -

javascript - addthis share facebook and google+ url -