(Android) с несколькими кнопками, элемент списка не может быть нажат

У меня есть список с двумя кнопками на нем. Когда я хочу щелкнуть элемент списка, он не работает, но моя кнопка по-прежнему доступна. Как я могу сделать все кнопки, чтобы весь элемент списка был доступен для клика?

Элемент списка:

<TwoLineListItem xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="wrap_content" android:mode="twoLine"> <Button android:id="@+id/erase" android:layout_width="40dip" android:layout_height="40dip" android:focusable="false" android:focusableInTouchMode="false"/> <ImageButton android:id="@+id/soundf" android:layout_width="40dip" android:layout_height="40dip" android:focusable="false" android:focusableInTouchMode="false"/> <TextView android:id="@+id/texxt1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:textColor="#CC0"/> </TwoLineListItem> 

Макет, содержащий ListView:

  <LinearLayout android:orientation="horizontal" android:layout_width="fill_parent" android:layout_height="wrap_content"> <Button android:id="@+id/left" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="English to Indonesia" android:layout_weight="1" android:background="@drawable/chbutt" /> <Button android:id="@+id/right" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Indonesia to English" android:layout_weight="1" android:background="@drawable/chbutt" /> </LinearLayout> <ListView android:layout_height="wrap_content" android:layout_width="fill_parent" android:id="@+id/history" android:headerDividersEnabled="false" android:footerDividersEnabled="false" android:isScrollContainer="false" /> </LinearLayout> 

Для кнопок , флажков и изображений:

 android:focusable="false" 

Теперь обе кнопки (кнопки и строки) ListView доступны для кликов.

Для ImageButtons вы должны настроить фокусировку во время работы, потому что конструктор ImageButtons устанавливает значение true. Я рекомендую использовать ImageView вместо ImageButton.

 <?xml version="1.0" encoding="utf-8"?> <RelativeLayout android:id="@+id/rel1" android:layout_width="fill_parent" android:layout_height="wrap_content"> <Button android:id="@+id/erase" android:layout_marginLeft="6dip" android:layout_marginTop="6dip" android:layout_width="40dip" android:layout_height="40dip" android:background="@drawable/closebtn" android:focusable="false" android:focusableInTouchMode="false" /> <ImageButton android:id="@+id/soundf" android:layout_width="40dip" android:layout_height="40dip" android:layout_below="@+id/erase" android:layout_alignLeft="@+id/erase" android:background="@drawable/soundinv" android:focusable="false" android:focusableInTouchMode="false" /> <TextView android:id="@+id/texxt1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_toRightOf="@+id/erase" android:layout_alignTop="@+id/erase" android:textAppearance="?android:attr/textAppearanceLarge" android:textColor="#CC0" /> <TextView android:id="@+id/texxt2" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_below="@+id/texxt1" android:layout_alignLeft="@+id/texxt1" android:textAppearance="?android:attr/textAppearanceSmall" android:textColor="#FFF" /> </RelativeLayout> 

Теперь вы также можете присвоить событие click относительной компоновке.

Просто добавьте это в свой код Java: holder.yourButton.setFocusable(false); Я использую свой собственный cursorAdapter, поэтому я помещаю строку кода в конец bindView это должно сделать это.

Intereting Posts