0
votes

I'm trying to make a ListView with two buttons, I need to know position of the list when I click on any button, but I need that the Item become unclickable!

Is there any people that can help me ?

this is my item.xml:

<?xml version="1.0" encoding="utf-8"?>

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"

    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:background="@color/Clear">

    <ImageView
        android:layout_marginTop="20dp"
        android:layout_marginBottom="10dp"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:background="@color/Clear"
        android:layout_centerHorizontal="true"
        android:id="@+id/imgProducte"
        android:clickable="false"
        android:focusable="false"
        android:focusableInTouchMode="false"/>

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:id="@+id/nomPreuQuantitat"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_below="@id/imgProducte"
        android:layout_marginBottom="3dp"
        android:layout_centerHorizontal="true"
        android:textSize="18sp"
        android:gravity="center"
        android:text="test1"
        android:clickable="false"
        android:focusable="false"
        android:focusableInTouchMode="false"/>

    <TextView
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:layout_below="@id/nomPreuQuantitat"
        android:layout_marginLeft="30dp"
        android:layout_marginRight="30dp"
        android:layout_marginBottom="3dp"
        android:textSize="16sp"
        android:layout_centerHorizontal="true"
        android:id="@+id/descripcio"
        android:gravity="center"
        android:clickable="false"
        android:focusable="false"
        android:focusableInTouchMode="false"/>

    <LinearLayout
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:gravity="center_horizontal"
        android:layout_marginTop="10dp"
        android:layout_below="@id/descripcio">

        <Button
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_marginRight="10dp"
            android:layout_marginBottom="10dp"
            android:id="@+id/btn_menys"
            android:background="@drawable/b_minus"
            android:focusable="false"
            android:clickable="false"
            android:focusableInTouchMode="false"/>
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_marginBottom="10dp"
            android:id="@+id/quantitat"
            android:background="@drawable/b_buit"
            android:gravity="center"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:clickable="false"/>
        <Button
            android:layout_width="wrap_content"
            android:layout_height="fill_parent"
            android:layout_marginLeft="10dp"
            android:layout_marginBottom="10dp"
            android:onClick=""
            android:id="@+id/btn_mes"
            android:background="@drawable/b_plus"
            android:focusable="false"
            android:focusableInTouchMode="false"
            android:clickable="false"/>
    </LinearLayout>
</RelativeLayout>

and my java class is :

lstProductes.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            Toast.makeText(getApplicationContext(),""+view.isSelected(),Toast.LENGTH_SHORT).show();
            try {
                final Button botoAfegir = (Button) findViewById(R.id.btn_mes);
                final Button botoRestar = (Button) findViewById(R.id.btn_menys);
                final String concepte = arraiProductes.get(position).getName();

                botoAfegir.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(getApplicationContext(), "Afegir " + concepte, Toast.LENGTH_SHORT).show();
                    }
                });
                botoRestar.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                        Toast.makeText(getApplicationContext(), "Restar " + concepte, Toast.LENGTH_SHORT).show();
                    }
                });
            } catch (Exception exc) {
                Toast.makeText(getApplicationContext(), exc.getMessage(), Toast.LENGTH_SHORT).show();
            }
        }
    });
1
can you elaborate but I need that the Item become unclickable!Raghunandan
Define button click listener in getView of your CustomRaghunandan
why do you have an onItemClickListener if your item is not supposed to be clickable ?njzk2
I implement onItemClickListener in order to know de position of the item, but I think you are right, I'm going to define ClickListener, any Idea to knoy the row selected ?jordi baldó
Many thanks !! after defining buttons on getView, the problem was solved !!jordi baldó

1 Answers

0
votes

Make the Layout (convertView in the getView of Adapter) that you mentioned in the getView of the Adapter, make it to setClickable to false when the button in the layout is clicked

and Mention the click listeners in getView of the Adapter