android - AppWidget AdapterViewFlipper not working on item click -


i have created simple appwidget adapterviewflipper. displaying data, , flip action working properly, if want handle on item click action, doesn't working. if change adapterviewflipper on listview in xml layout, action click item works properly.

class widget provider

public class kidchildrenadaperviewflipperwidget extends appwidgetprovider {  public static final string widget_action = "widget_action"; public static final string action_next = ".action_next"; public static final string action_previous = "action_previous"; private static final string action = "action";  public static final string tag = "kidchildrenlistwidget";  @override public void onreceive(context context, intent intent) {      string action = intent.getaction();     bundle extras = intent.getextras();     string actionbutton = (string) (extras == null ? null : extras.get(action));      if (action.equals(kidchildrenadaperviewflipperwidget.widget_action)){         toast.maketext(context, "kliknięto: ", toast.length_short).show();     }      if (appwidgetmanager.action_appwidget_update.equals(action) && actionbutton != null) {         remoteviews remoteviews = new remoteviews(context.getpackagename(), r.layout.widget_view_flipper_children);         switch (actionbutton) {             case action_next: {                 remoteviews.shownext(r.id.advkidwidgetchildren);             }             break;              case action_previous: {                 remoteviews.showprevious(r.id.advkidwidgetchildren);             }             break;         }          int widgetid = extras.getint(appwidgetmanager.extra_appwidget_id, 0);         appwidgetmanager.getinstance(context).updateappwidget(widgetid, remoteviews);     }else {         super.onreceive(context, intent);     } }  @override public void onupdate(context context, appwidgetmanager appwidgetmanager, int[] appwidgetids) {      (int = 0; < appwidgetids.length; i++) {          intent widgetintent = new intent(context, widgetchildadapterviewflipperservice.class);         widgetintent.putextra(appwidgetmanager.extra_appwidget_id, appwidgetids[i]);         widgetintent.setdata(uri.parse(widgetintent.touri(intent.uri_intent_scheme)));          remoteviews remoteviews = new remoteviews(context.getpackagename(), r.layout.widget_view_flipper_children);          remoteviews.setremoteadapter(r.id.advkidwidgetchildren, widgetintent);          remoteviews.setemptyview(r.id.advkidwidgetchildren, r.id.tvkidwidgetemptyview);           intent activityintent = new intent(context, kidchildrenadaperviewflipperwidget.class);         // set action intent.         // when user touches particular view, have effect of         // broadcasting widget_action.         activityintent.setaction(widget_action);         activityintent.putextra(appwidgetmanager.extra_appwidget_id, appwidgetids[i]);         widgetintent.setdata(uri.parse(widgetintent.touri(intent.uri_intent_scheme)));         pendingintent toastpendingintent = pendingintent.getbroadcast(context, 0, activityintent,                 pendingintent.flag_update_current);         remoteviews.setpendingintenttemplate(r.id.advkidwidgetchildren, toastpendingintent);            intent previousintent = new intent(context, kidchildrenadaperviewflipperwidget.class);         previousintent.setaction(appwidgetmanager.action_appwidget_update);         previousintent.putextra(appwidgetmanager.extra_appwidget_id, appwidgetids[i]);         previousintent.putextra(action, action_previous);         pendingintent previouspendingintent = pendingintent.getbroadcast(context, 1, previousintent, pendingintent.flag_update_current);         remoteviews.setonclickpendingintent(r.id.ivwvfcprevious, previouspendingintent);           intent nextintent = new intent(context, kidchildrenadaperviewflipperwidget.class);         nextintent.setaction(appwidgetmanager.action_appwidget_update);         nextintent.putextra(appwidgetmanager.extra_appwidget_id, appwidgetids[i]);         nextintent.putextra(action, action_next);         pendingintent nextpendingintent = pendingintent.getbroadcast(context, 2, nextintent, pendingintent.flag_update_current);         remoteviews.setonclickpendingintent(r.id.ivwvfcnext, nextpendingintent);          appwidgetmanager.updateappwidget(appwidgetids[i], remoteviews);      }      super.onupdate(context, appwidgetmanager, appwidgetids);     log.d(tag, "zakutalizowano widget"); } 

}

class widget service

public class widgetchildadapterviewflipperservice extends remoteviewsservice {  @override public remoteviewsfactory ongetviewfactory(intent intent) {     return new widgetfactoryadv(this.getapplicationcontext(), intent); }  public class widgetfactoryadv implements remoteviewsfactory {       private context context;     private int appwidgetid;      private kiddatabasemanager kiddatabasemanager;     private list<childobject> childobjectlist;      public widgetfactoryadv(context context, intent intent ) {         this.context = context;         appwidgetid = intent.getintextra(appwidgetmanager.extra_appwidget_id,                 appwidgetmanager.invalid_appwidget_id);      }      @override     public void oncreate() {          kiddatabasemanager = new kiddatabasemanager(context);         childobjectlist = kiddatabasemanager.getchildren(((applicationcontroller) context.getapplicationcontext()).getuser(context).getid());     }      @override     public void ondatasetchanged() {         childobjectlist = kiddatabasemanager.getchildren(((applicationcontroller) context.getapplicationcontext()).getuser(context).getid());          (int i=0; i<childobjectlist.size(); i++){             getviewat(i);         }     }      @override     public void ondestroy() {     }      @override     public int getcount() {         return childobjectlist.size();     }      @override     public remoteviews getviewat(int i) {          childobject childobject = childobjectlist.get(i);          remoteviews widgetrow = new remoteviews(context.getpackagename(), r.layout.widget_children_adv_item);          widgetrow.settextviewtext(r.id.tvwidgetitemchildname, childobject.getname());          string sdf = new simpledateformat("yy.mm.dd hh:mm:ss").format(new date(childobject.getpositioncreatedat() * 1000));         widgetrow.settextviewtext(r.id.tvwidgetitemchildpositiontime, html.fromhtml(string.format(getstring(r.string.last_position),                 sdf)));          address address = utils.getaddress(context, childobject.getlatitude(), childobject.getlongitude());         if (address != null) {             string thoroughfare = address.getthoroughfare() == null ? "" : address.getthoroughfare();             string localiyty = address.getlocality() == null ? "" : (", " + address.getlocality());             string featurename = address.getfeaturename() == null ? "" : (" " + address.getfeaturename());               widgetrow.settextviewtext(r.id.tvwidgetitemaddress, thoroughfare + featurename + localiyty);         }          widgetrow.settextviewtext(r.id.tvwidgetitemaccuracy, childutil.getaccuracyindicator(context, childobject.getaccuracy()));          childutil.setactivityiconforremoteview(context, widgetrow, childobject.getactivity());           widgetrow.settextviewtext(r.id.tvwidgetitembattery, childobject.getbattery() + " %");          intent widgetintent = new intent();         bundle widgetbundle = new bundle();          widgetbundle.putint("index", i);         widgetintent.putextras(widgetbundle);          widgetrow.setonclickfillinintent(r.id.rlwidgetadvitem, widgetintent);           return widgetrow;     }      @override     public remoteviews getloadingview() {          return null;     }      @override     public int getviewtypecount() {         return childobjectlist.size();     }      @override     public long getitemid(int i) {         return i;     }      @override     public boolean hasstableids() {         return true;     } } 

}

i spent lot of time try solving problem, don't have idea, why not working

thanks suggestion can me problem


Comments

Popular posts from this blog

How to provide Authorization & Authentication using Asp.net, C#? -

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

How to use Authorization & Authentication in Asp.net, C#? -