android - Set onClickListener on the RelativeLayout contained by CardView -
i trying set onclicklistener on each of cardview elements. since not able set onclicklistener on cards (see here), thought setting relativelayout contained cards. right using native cardview library , applied this tutorial.
here's mainactivity's oncreate:
@override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); recyclecardview = (recyclerview) findviewbyid(r.id.cardlist); recyclecardview.sethasfixedsize(true); linearlayoutmanager llmanager = new linearlayoutmanager(this); llmanager.setorientation(linearlayoutmanager.vertical); recyclecardview.setlayoutmanager(llmanager); data = createlist(9); contactadapter ctadapter = new contactadapter(data); //... recyclecardview.setadapter(ctadapter); this item_card_view xml:
<?xml version="1.0" encoding="utf-8"?> <android.support.v7.widget.cardview xmlns:card_view="http://schemas.android.com/apk/res-auto" xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/card_view" android:layout_width="match_parent" android:layout_height="match_parent" card_view:cardcornerradius="4dp" android:layout_margin="5dp"> <relativelayout android:id="@+id/nativecardlayout" android:layout_width="match_parent" android:layout_height="match_parent" android:clickable="true" android:background="?android:selectableitembackground"> <!--some more layout--> </relativelayout> </android.support.v7.widget.cardview> here's contactadapter's oncreateviewholder:
@override public contactviewholder oncreateviewholder(final viewgroup viewgroup, int i) { view itemview = layoutinflater.from(viewgroup.getcontext()) .inflate(r.layout.item_card_view, viewgroup, false); relativelayout cardlayout = (relativelayout) viewgroup.findviewbyid(r.id.nativecardlayout); //nullpointerexception here cardlayout.setonclicklistener(new view.onclicklistener() { @override public void onclick(view v) { toast.maketext(viewgroup.getcontext(), "clickable card", toast.length_long).show(); } }); return new contactviewholder(itemview); } my problem relativelayout trying load, inside cardview element, null. therefore nullpointerexception.
how can set onclicklistener on each relativelayout? possible?
see below edit, logical mistake:
relativelayout cardlayout = (relativelayout)itemview.findviewbyid(r.id.nativecardlayout);
Comments
Post a Comment