Добавить обработчик кликов в пользовательский макет - PullRequest
0 голосов
/ 08 октября 2019

Всем доброго времени суток.

Я раздуваю пользовательский макет в виде строк для объектов.

Все работает нормально, за исключением того, что мне не удается установить Click / LongClick на строку.

Вот что я сделал.

    Layout_BatchRow batchRow = new Layout_BatchRow(this);
    batchRow.New(batchObject);
    batchRow.setOnLongClickListener(new View.OnLongClickListener() {
        @Override
        public boolean onLongClick(final View v) {
            . . .
        }
    });
    batchRow.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(final View v) {
            . . .
        }
    });

Ниже приведен класс пользовательского макета:

public class Layout_BatchRow extends RelativeLayout {
    public Layout_BatchRow(Context context) {
        super(context);
        inflate(getContext(), R.layout.batch_row, this);
        . . .
    }
}

А вот XML-макет:

<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    xmlns:tool="http://schemas.android.com/tools"
    android:clickable="true"
    android:focusable="true"
    android:longClickable="true"
    tool:context=".Layout_BatchRow">

    . . .

</RelativeLayout>

Слушатели не достигают во время отладки.

Есть идеи?

1 Ответ

1 голос
/ 08 октября 2019

Я думаю, вам не нужно добавлять это:

android:clickable="true"
android:focusable="true"
android:longClickable="true"
...