Я использую FunDapter для своего проекта. Когда я пытаюсь добавить кнопку изображения в свой макет, другие тексты становятся неактивными. при нажатии на них ничего не происходит. Как добавить кнопку к этому адаптеру?

Ниже list_layout, где все работает нормально

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceLarge"
    android:text="Isimsiz"
    android:id="@+id/Housename"
    android:layout_alignParentTop="true"
    android:layout_alignParentLeft="true"
    android:layout_alignParentStart="true"
    android:layout_marginLeft="2dp"
    android:clickable="false"
    android:textColor="#241d1d"
    android:layout_row="0"
    android:layout_column="0"
    android:layout_marginRight="2dp"
    android:layout_marginTop="2dp"
    android:layout_marginBottom="2dp" />



    <TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:textAppearance="?android:attr/textAppearanceSmall"
    android:text="Aciklama Yok"
    android:id="@+id/Desc"
    android:layout_below="@+id/Housename"
    android:clickable="false"
    android:layout_alignStart="@+id/Housename"
    android:textColor="#241d1d"
    android:layout_row="1"
    android:layout_column="0"
    android:layout_marginLeft="2dp"
    android:layout_marginRight="2dp"
    android:layout_marginTop="2dp"
    android:layout_marginBottom="2dp"
    android:layout_alignEnd="@+id/Housename" />

    </RelativeLayout>

Когда я добавляю кнопку изображения, ничего нельзя нажимать, кроме кнопки изображения

 <ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:id="@+id/imageButton"
    android:layout_alignTop="@+id/Housename"
    android:layout_alignParentEnd="true"
    android:layout_alignBottom="@+id/Desc"
    android:clickable="true"
    android:onClick="berk"
    />

И это часть класса, в котором я создаю свой адаптер

   public void processFinish(String s) {
    productList = new JsonConverter<Product>().toArrayList(s, Product.class);
    BindDictionary<Product> dict = new BindDictionary<Product>();
    dict.addStringField(R.id.Housename, new StringExtractor<Product>() {
        @Override
        public String getStringValue(Product product, int position) {
            return product.HouseID;
        }
    });

    dict.addStringField(R.id.Desc, new StringExtractor<Product>() {
        @Override
        public String getStringValue(Product product, int position) {
            return product.Desc;
        }
    });


    FunDapter<Product> adapter = new FunDapter<>(
    ListActivity.this, productList, R.layout.layout_list, dict);

    lvProduct = (ListView)findViewById(R.id.lvProduct);
    lvProduct.setAdapter(adapter);
    lvProduct.setOnItemClickListener(this);

}

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    //do sth
}
public void berk(View v) {
    //do sth
}

Примечание: также, когда я даю атрибут clickable текстам в xml, они перестают работать. Например, когда я играю с макетом XML, все перестает работать.

1
Wardruna 7 Сен 2016 в 11:40

2 ответа

Лучший ответ
First of all if u are using button or edit text in your adapter or row file Then every thing will get stop working .
You should use

1.Set descendant Focusablity="before Descendants" in the list view.
2.Set window Soft Input Mode="adjust Pan" in the manifest
3.Set list view.set Items Can Focus(true)
0
Parvesh Khan 7 Сен 2016 в 08:46

Вы должны указать отдельное событие щелчка для всех просмотров.

В вашем ImageButton есть android: clickable = "true", что делает подвид интерактивным. Но другие виды просмотра не доступны для просмотра.

Решение

Для события щелчка в текстовом представлении

textView.setOnClickListener (новый OnClickListener () {
public void onClick (View v) {
// ... }
});
аналогично Imagebutton
удалить

android: clickable = "true"

Надеюсь, это поможет.

0
Rahul 7 Сен 2016 в 09:43