Android ListView Custom Adapter ImageButton

Это может быть неправильный подход, если есть лучший способ, пожалуйста, скажите мне. Я создал класс Custom Adapter, и в моем методе getView я увеличиваю представление, которое хочу использовать

public View getView(int position, View convertView, ViewGroup parent) 
    {
        View v = mInflater.inflate(R.layout.wherelayout, null);
        if (convertView != null) 
        {
            v = convertView;
        }
        HashMap<String, Object> whereHash = (HashMap<String, Object>) this.getItem(position);
        if (whereHash != null) 
        {
            TextView whereId = (TextView) v.findViewById(R.id.tvWhere);
            TextView whereDetails = (TextView) v.findViewById(R.id.tvWhereDetails);
            ImageButton ibDelWhere = (ImageButton) v.findViewById(R.id.ibDelWhere);

            whereId.setText((CharSequence) whereHash.get("where"));
            whereDetails.setText((CharSequence) whereHash.get("details"));
            if (ibDelWhere != null)
            {
                ibDelWhere.setId(position);
                ibDelWhere.setOnClickListener(new OnClickListener() 
                  {

                    @Override
                    public void onClick(View v) 
                    {
                        //do stuff when clicked
                    }
                  }
                );
            }
        }
        return v;
    }

Представление состоит из 2 TextView, выровненных по левому краю, и ImageButton, выровненного по правому краю, я хочу иметь возможность удалить элемент из ListView при нажатии кнопки. макет выглядит следующим образом -

    <RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" android:orientation="horizontal" android:clickable="true">
<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:textSize="25sp" android:id="@+id/tvWhere" android:textColor="#00FF00" android:text="TextView" android:gravity="top|left" android:layout_alignParentTop="true" android:layout_alignParentLeft="true"></TextView>
<TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:id="@+id/tvWhereDetails" android:textColor="#0000FF" android:text="TextView" android:textSize="18sp" android:layout_below="@+id/tvWhere" android:gravity="bottom|left" android:layout_alignParentLeft="true"></TextView>
<ImageButton android:layout_height="wrap_content" android:layout_width="wrap_content" android:src="@drawable/eraser" android:id="@+id/ibDelWhere" android:layout_alignParentRight="true" android:layout_alignParentTop="true"></ImageButton>
</RelativeLayout>

Проблема в том, что когда ImageButton находится в макете, я могу щелкнуть его, и onClick () срабатывает, как ожидалось, но я не могу щелкнуть сам фактический элемент списка, т.е. Элементы TextView для запуска уже назначенного ему ListView.onItemClick. Если я удалю ImageButton из макета, то событие ListView.onItemClick срабатывает, когда я щелкаю элемент. Можно ли как-нибудь включить щелчок как по элементу ListView, так и по кнопке внутри макета? Спасибо, ребята и девушки.

6
задан daveD 24 May 2011 в 20:40
поделиться