java - View object not clickable - using OnClickListener -
i created basic class called listitem, stores 2 strings , integer.
this container items sit in recyclerview.
i tried make listitems clickable, made listitem extend view class. , added onclicklistener , set it. hasn't worked. tested creating short message using toast nothing displays. have idea why?
listitem class:
public listitem(string title, string date, int url, context context, attributeset attrs){ super(context, attrs); this.title = title; this.date = date; this.url = url; }
...class listitems created.....
private attributeset attrs; listitem y = new listitem(title, date, a, this.getcontext(), attrs); view.onclicklistener mfan = new view.onclicklistener() { public void onclick(view v) { toast.maketext(getactivity(), "test" , toast.length_short).show(); } }; y.setonclicklistener(mfan);
implementing item click listener in recyclerview bit different.
i assume have implemented own custom recyclerviewadpater should this. have implement own onclicklistener interface inside it.
public class customrecyclerviewadapter extends recyclerview.adapter<recyclerview.viewholder> { private list<listitem> listitems; private static onlistitemclicklistener onlistitemclicklistener; public interface onlistitemclicklistener { public void onlistitemclick(int position, view v); } public void setonlistitemclicklistener(onlistitemclicklistener onlistitemclicklistener) { this.onlistitemclicklistener = onlistitemclicklistener; } // implement onclicklistener in list item view holder. public static class listitemviewholder extends recyclerview.viewholder implements view.onclicklistener { public listitemviewholder(view listitemview) { super(listitemview); listitemview.setonclicklistener(this); } @override public void onclick(view view) { onlistitemclicklistener.onlistitemclick(getadapterposition(), view); } } }
then in main activity or fragment this.
recyclerview.setlayoutmanager(new linearlayoutmanager(getactivity())); customrecyclerviewadapter customrecyclerviewadapter = new customrecyclerviewadapter(listitems); recyclerview.setadapter(customrecyclerviewadapter); customrecyclerviewadapter.setonlistitemclicklistener(new customrecyclerviewadapter.onlistitemclicklistener() { @override public void onlistitemclick(int position, view v) { toast.maketext(getactivity(), "test" , toast.length_short).show(); } });
Comments
Post a Comment