Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

ListView and Buttons inside ListView

I want to display a Button inside the ListView. The goal should be to click on the ListView line or on the button.

Click on the line it shows more info. Click on the button it shows at the bottom more buttons.

The same as the GMAIL app.

On the right there is a checkbox and after clicking on the checkbox at the bottom, the button bar appears.

My problem is after inserting the button into the ListView, the button is not clickable. If I add the to the LinearLayout from the button llButton.setClickable() it works. But, only the button. The ListView itself doesn't react on clicks anymore!

I have tried this example.

The same issue as above...

like image 676
chrisonline Avatar asked Jun 15 '10 14:06

chrisonline


2 Answers

Just to make this clear – and no one seems to have said something this simple – whilst one is not allowed to have a focusable button work in conjunction with the list view, there is a much simpler solution for this.

The accepted answer is a given - you should always do that when setting the click listener for list items, so that is silly that OP didn't know that.

If you are using an XML layout as your list item, simply set the button to have the following attribute and it will cause the list item to be clickable as well:

android:focusable="false"

like image 84
flagoworld Avatar answered Sep 17 '22 08:09

flagoworld


Add the line below to your list item XML.

android:descendantFocusability="blocksDescendants" 

Then your list item will be like this:

<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:descendantFocusability="blocksDescendants" android:layout_height="wrap_content" >      // Your layout objects here  </RelativeLayout> 
like image 41
Faruk Toptas Avatar answered Sep 17 '22 08:09

Faruk Toptas