Click is not working on the Listitem Listview android
Asked Answered
J

10

34

I implemented the android listview with the ListActivity. Here I have the problem that when i click on the list item no action is performed when the flash color is also not coming that is the orange color. So do you have any idea about this kindly answer to my question.

@Override
protected void onListItemClick(ListView l, View v, int position, long id) 
{
    super.onListItemClick(l, v, position, id);
    Toast.makeText(getApplicationContext(), "msg msg", Toast.LENGTH_SHORT)
            .show();

}

I put this code also into the Main ListActivity.

Jenelljenelle answered 23/7, 2012 at 9:42 Comment(2)
Do you have any button or ImageButton in your List?Inverter
@android Selva: Yes I have... Its a problem?Jenelljenelle
I
125

The first thing what you have to note here is, whenever there are Clickable elements like Buttons or ImageButtons present in your ListView element, they take the control of click events. And so your ListView won't get the chance to accept the click event.

What you simply have to do is, set the focusable attribute to false for the Button or ImageButton you have in your ListView. But still they will work without any problem and also your ListView's onListItemClick will also work.

Try this,

        <Button  android:id="@+id/textsize_increaser"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toRightOf="@+id/back_button"
        android:focusable="false"
        android:text=" A + "/>

Here I have added this android:focusable="false" and it works fine. try it.

Inverter answered 24/7, 2012 at 5:39 Comment(4)
You should add also clickable=false if you listen to item click onlyEssary
Please help me. I have been stuck on this for the last 7 hours now, and it is such a simple question. https://mcmap.net/q/332388/-why-can-39-t-i-remove-an-item/…Joletta
For me, imageButton.setFocusable(false) and imageButton.setFocusableInTouchMode(false) in adapter helped. In XML there was no effect!Anissa
you saved my @ss, thank you from the future, stranger! :)Bayreuth
F
12

Have you set the choice mode of ListView to SINGLE :

     listView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);

And if you have any clickable imageview or textview or button in the list item, then make them not focusable (in your Adapter class):

        yourButton.setFocusable(false);
        yourButton.setFocusableInTouchMode(false);
Florindaflorine answered 23/7, 2012 at 9:50 Comment(1)
Please help me. I have been stuck on this for the last 7 hours now, and it is such a simple question. https://mcmap.net/q/332388/-why-can-39-t-i-remove-an-item/…Joletta
N
4

Are you using custom Adapter? and inflating layout with button or any view that eats away the list list view focus as child, then it won't work obviously. make sure to set

    android:focusable="false"

to such view in xml file. hope this works for you.

Ngo answered 23/7, 2012 at 9:58 Comment(1)
Please help me. I have been stuck on this for the last 7 hours now, and it is such a simple question. https://mcmap.net/q/332388/-why-can-39-t-i-remove-an-item/…Joletta
F
4

Set this in your listactivity java file

listview1.setFocusable(false);
Faradic answered 23/7, 2012 at 10:0 Comment(0)
N
2

Actually there is a parameter meant for that to prevent children views from getting focus, just add the following in the parent layout:

android:descendantFocusability="blocksDescendants"

As the documentation explains:

The ViewGroup will block its descendants from receiving focus.

Nonexistence answered 28/5, 2016 at 14:28 Comment(0)
A
1

Eclipse suggested me to add textIsSelectable="true" to my TextViews in the layout xml which was used for list view.

Well, if you want to click the items in the list then you should not add those tags.

Acclamation answered 3/5, 2013 at 20:9 Comment(0)
N
1

make sure that you are

  1. Not using Scroll View with List View
  2. Not using Scroll View in your row item layout for List View

If Scroll View is present at any of above place remove it

Nonunion answered 11/7, 2017 at 4:33 Comment(0)
D
0

refer to this post for a solution:

Click is not working on the Listitem Listview android

View v = parent.getChildAt(position);
parent.requestChildFocus(v,view);
v.setBackground(res.getDrawable(R.drawable."Some drawable for clicked row"));

int count = parent.getChildCount();
for(int i=0; i<count; i++)
{
   if(i!=position)
   {
     v = parent.getChildAt(i);
     v.setBackground(res.getDrawable(R.drawable."some drawable for not clicked row));
   }
}
Demob answered 27/6, 2013 at 14:35 Comment(0)
T
0
listview.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View v, int pos,
                    long id) {
                Toast.makeText(v.getContext(), exm.get(pos).getDefinition(),
                        Toast.LENGTH_SHORT).show();


            }
        });
Tellus answered 12/4, 2014 at 8:24 Comment(0)
A
0
listItemButton.setFocusable(false);
listItemButton.setFocusableInTouchMode(false);

Set the above in your adapter. It's not working in XML

Ablepsia answered 19/2, 2018 at 6:21 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.