0

我正在尝试使用两个按钮制作一个 ListView,当我单击任何按钮时,我需要知道列表的位置,但我需要 Item 变得不可点击!

有没有人可以帮助我?

这是我的 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>

我的java类是:

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();
            }
        }
    });
4

1 回答 1

0

把你在Adapter的getView中提到的Layout(Adapter的getView中的convertView),当layout中的按钮被点击时设置为setClickable为false

并在适配器的 getView 中提及点击侦听器

于 2013-08-28T13:46:06.140 回答