Android ListView does not gets selected when an OnClickListener is set -
i using listview custom adapter , selector have set background of listview row item parent layout. when not setting onclick listener parent layout of listview item, selector working fine , row gets selected. setting onclick listener parent layout of listview item , selector not working. i don't want use onitemclicklistener have take care of things listview adapter.
i have been searching hours didn't got clue. please help. thanks
my custom adapter class
public class customadapter extends baseadapter { private final string[] mnotificationlist; private static layoutinflater inflater = null; private activity mactivity; public customadapter(activity activity,string[] data) { mactivity = activity; mnotificationlist = data; inflater = (layoutinflater) activity.getsystemservice(context.layout_inflater_service); } @override public int getcount() { if(mnotificationlist == null){ return 0; } else{ return mnotificationlist.length; } } @override public object getitem(int position) { return position; } @override public long getitemid(int id) { return id; } @override public view getview(final int position, view converterview, viewgroup parent) { if (converterview == null){ converterview = inflater.inflate(r.layout.notification_list_row, null); } notificationlistholder listrowholder = (notificationlistholder)converterview.gettag(); if(listrowholder==null) { listrowholder = new notificationlistholder(); initializeview(listrowholder,converterview); } bindview(listrowholder,mnotificationlist[position]); return converterview; } private void bindview(notificationlistholder listrowholder, string notificationdetails) { listrowholder.articlename.settext(notificationdetails); listrowholder.parentlayout.setonclicklistener(new onclicklistener() { @override public void onclick(view v) { toast.maketext(mactivity, "toast",toast.length_short).show(); } }); } private void initializeview(notificationlistholder listrowholder,view converterview) { listrowholder.parentlayout = (linearlayout) converterview.findviewbyid(r.id.notificationlist_row_layout); listrowholder.articlename = (textview) converterview.findviewbyid(r.id.article_text); converterview.settag(listrowholder); } public static class notificationlistholder{ public linearlayout parentlayout; public textview articlename; } }
list row item xml
<relativelayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/notificationlist_row_layout" android:layout_width="match_parent" android:layout_height="wrap_content" android:background="@drawable/list_selector" > <textview android:id="@+id/article_text" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_alignparentleft="true" android:layout_marginright="40dp" android:textappearance="?android:attr/textappearancemedium" android:textcolor="@android:color/black" android:textstyle="bold" /> <textview android:id="@+id/text" android:layout_width="wrap_content" android:layout_height="50dp" android:layout_alignparentleft="true" android:layout_marginright="40dp" android:text="second view" android:layout_below="@+id/article_text" android:textappearance="?android:attr/textappearancemedium" android:textcolor="@android:color/black" android:textstyle="bold" /> </relativelayout>
list selector xml
<?xml version="1.0" encoding="utf-8"?> <selector xmlns:android="http://schemas.android.com/apk/res/android"> <item android:state_selected="true" android:drawable="@color/msg_read_bg" /> <item android:state_pressed="true" android:drawable="@color/msg_read_bg" /> <item android:state_activated="true" android:drawable="@color/msg_read_bg" /> <item android:state_active="true" android:drawable="@color/msg_read_bg" /> <item android:state_focused="true" android:drawable="@color/msg_read_bg" /> <item android:drawable="@android:color/white" /> </selector>
Comments
Post a Comment