ListView OnItemClickListener, не отвечающий?

Я везде искал решение этого, но я не могу выяснить, как реализовать его. Мой OnItemClickListener был отключен так или иначе на моем ListView строки, потому что я имею ImageButton в размещении строк, которое принимает фокус. Были многочисленные вопросы, которые я нашел, но ни один из них не получил меня нигде.

Я проверил этот вопрос, но я не мог действительно понять его. Мне просто нужен способ получить строки, активируемые по щелчку так, чтобы я мог обнаружить, когда строка нажимается. Долго нажимайте, и фокус хорошо работают.

44
задан Community 23 May 2017 в 12:32
поделиться

2 ответа

Вместо OnItemClickListener, добавьте OnClickListener к каждому из ваших представлений, возвращаемых из адаптера. Вам нужно будет использовать setItemsCanFocus, настраивая ваш список:

ListView list = (ListView) findViewById(R.id.myList);
list.setAdapter(new DoubleClickAdapter(this));
list.setItemsCanFocus(true);

и затем в Adapter's getView, это даст строку с возможностью клика. Предполагается, что кнопка находится в раздутом xml.

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    View view = View.inflate(context, R.layout.cell, null);
    view.setClickable(true);
    view.setFocusable(true);
    view.setBackgroundResource(android.R.drawable.menuitem_background);
    view.setOnClickListener(new OnClickListener() {

        @Override
        public void onClick(View v) {
            new AlertDialog.Builder(context).setTitle("touched").show();
        }

    });
    return view;
}
60
ответ дан 26 November 2019 в 21:40
поделиться

Для моей версии этой проблемы проблема заключалась в том, что я установил свой TextView объект android: inputType = "textMultiLine" . Когда я удалил эту строку, проблема со списком, который нельзя было щелкнуть, исчезла. Похоже на маленькую неприятную ошибку.

Кроме того, я все еще могу использовать свойства android: minLines / android: maxLines без проблем, так что это не большая проблема. Просто не то решение, которое я ожидал.

4
ответ дан 26 November 2019 в 21:40
поделиться
Другие вопросы по тегам:

Похожие вопросы: