twitter - Can I set custom onClick on my timeline using fabric sdk? -
i creating twitter client using fabric can not create custom onclick. created custom adapter , tried create onclicklistener not working. open in browser tweet.
public class tweetadapter extends tweettimelinelistadapter { public arraylist<long> tweetids=new arraylist<long>(); public tweetadapter(context context, timeline<tweet> timeline) { super(context, timeline); } @override public view getview(int position, view convertview, viewgroup parent) { object rowview = convertview; final tweet tweet = (tweet)this.getitem(position); if(convertview == null) { rowview = new compacttweetview(this.context, tweet); } else { ((basetweetview)convertview).settweet(tweet); ((view)rowview).setonclicklistener(new view.onclicklistener() { @override public void onclick(view view) { tweetids.add(tweet.getid()); } }); } return (view)rowview; } } in basetweetview class function type onclicklistener in case can't think of idea overwrite.
private void setpermalinklauncher() { basetweetview.permalinkclicklistener listener = new basetweetview.permalinkclicklistener(); this.setonclicklistener(listener); this.contentview.setonclicklistener(listener); } class permalinkclicklistener implements onclicklistener { permalinkclicklistener() { } public void onclick(view v) { if(basetweetview.this.getpermalinkuri() != null) { basetweetview.this.scribepermalinkclick(); basetweetview.this.launchpermalink(); } } } any ideas? thanks
finally made works using custom adapter (very similar 1 use in question). adapter obtains resulting view super implementation , adds onclicklistener overrides fabric defaults one:
class customtweettimelinelistadapter extends tweettimelinelistadapter { public customtweettimelinelistadapter(context context, timeline<tweet> timeline) { super(context, timeline); } @override public view getview(final int position, view convertview, viewgroup parent) { view view = super.getview(position, convertview, parent); //disable subviews avoid links clickable if(view instanceof viewgroup){ disableviewandsubviews((viewgroup) view); } //enable root view , attach custom listener view.setenabled(true); view.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { string tweetid = "click tweetid:"+getitemid(position); toast.maketext(context, tweetid, toast.length_short).show(); } }); return view; } //helper method disable subviews private void disableviewandsubviews(viewgroup layout) { layout.setenabled(false); (int = 0; < layout.getchildcount(); i++) { view child = layout.getchildat(i); if (child instanceof viewgroup) { disableviewandsubviews((viewgroup) child); } else { child.setenabled(false); child.setclickable(false); child.setlongclickable(false); } } } } full code example here.
hope helps.
Comments
Post a Comment