> @Romain- > Thanks for responding. setChoiceMode is set to Mutiple choice. But it > doesnt check the row. Thats why I am manually trying it.
That's because the top-level View in your item has to be Checkable. It's a current limitation of ListView :( > > On Feb 16, 4:12 am, Mark Murphy <mmur...@commonsware.com> wrote: >> Shams wrote: >> > Hello, >> > I have a custom multi-select listview with two lines per row and a >> > checkbox in the first line. When I click on the checkbox, the checbox >> > does not get checked. But the list items get checked/ unchecked. I >> > want to check the checkbox corresponding to the row I clicked. If I >> > use findViewById() in onListItemClick(), it does not find the correct >> > checkbox. I click on a click and some other row gets checked. How can >> > I get to check the correct row. Below is my main.xml and >> > onListItemClick() code: >> >> > Main.xml >> > -------------- >> > <?xml version="1.0" encoding="utf-8"?> >> > <LinearLayout >> > xmlns:android="http://schemas.android.com/apk/res/android" >> > android:layout_width="fill_parent" >> > android:layout_height="wrap_content" >> > android:orientation="vertical" >> > android:paddingTop="5dip" >> > android:paddingBottom="5dip" >> > android:paddingLeft="5dip" >> >> > <CheckedTextView >> > android:id="@+id/title" >> > android:layout_width="fill_parent" >> > android:layout_height="wrap_content" >> > android:textAppearance="?android:attr/textAppearanceLarge" >> > android:checkMark="?android:attr/listChoiceIndicatorMultiple" >> > /> >> > <TextView >> > android:id="@+id/desc" >> > android:layout_width="fill_parent" >> > android:layout_height="wrap_content" >> > android:layout_below="@+id/title" >> > android:textAppearance="?android:attr/textAppearanceSmall" >> > /> >> > </LinearLayout> >> >> > xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx >> > protected void onListItemClick(ListView l, View v, int position, long >> > id) { >> > super.onListItemClick(l, v, position, id); >> > CheckedTextView cbox = (CheckedTextView)v.findViewById(R.id.title); >> > if(cbox.isChecked()) >> > cbox.setChecked(false); >> > else >> > cbox.setChecked(true); >> >> > v.refreshDrawableState(); >> > } >> >> Don't use findViewById() to attempt to find something in rows in a >> ListView. After all, if you have 20 visible rows, you will have 20+ >> views named R.id.title. >> >> If the row you want to check is the one clicked upon, your >> CheckedTextView should be the View supplied in the second parameter to >> onListItemClick(). Just cast it to a CheckedTextView. >> >> -- >> Mark Murphy (a Commons Guy)http://commonsware.com >> >> Android Training on the Ranch! -- Mar 16-20, >> 2009http://www.bignerdranch.com/schedule.shtml > > > -- Romain Guy Android framework engineer romain...@android.com Note: please don't send private questions to me, as I don't have time to provide private support. All such questions should be posted on public forums, where I and others can see and answer them --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Android Beginners" group. To post to this group, send email to android-beginners@googlegroups.com To unsubscribe from this group, send email to android-beginners-unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/android-beginners?hl=en -~----------~----~----~----~------~----~------~--~---