Как я могу зарегистрировать несколько слушателей при нажатии элемента в ListView? - PullRequest
0 голосов
/ 03 августа 2010

У меня есть ListView, где любой элемент это HorizontalLayout, на котором есть 3 TextView. Я могу реализовать интерфейс AdapterView.OnItemClickListener:


public void onItemClick(AdapterView parent, View view, final int position, long id) {
        final long iid = this.id;
        new Thread(
                new Runnable() {
                    public void run() {
                        long PlaylistId = PlayerServiceBridge.getPlaylistId();
                        if (PlaylistId == iid)
                            PlayerServiceBridge.setTrackByPosition(position);
                    }
                }
        ).start();
    }

Все правильно. Но теперь я хотел бы прокрутить второй из трех TextView по горизонтали. Я просто добавляю код:

<code>
title.setSingleLine(true);
title.setMovementMethod(new ScrollingMovementMethod());
И теперь, когда я нажимаю на Item, где находится мой TextView, ничего не происходит. Когда я щелкаю и двигаю мышь - текст на TextView прокручивается. Все нормально. Но onItemClick никогда не вызывался. Что мне нужно: 1. Мне нужно просто слушать OnItemClick, когда пользователь просто нажимает на Item. 2. Когда пользователь нажимает кнопку мыши на Item-> TextView, а затем перемещает мышь - просто прокрутите текст в ThzT TextView. Второй пункт реализован и работает хорошо. Мне нужно сначала одновременно со вторым) 2. Добавлено: public boolean onItemLongClick (родительский объект AdapterView, представление View, позиция int, длинный идентификатор) и public void onItemSelected (родительский объект AdapterView, представление View, позиция int, длинный идентификатор) правильно прослушиваются и обрабатываются моим кодом. Почему не onItemSelect?

1 Ответ

3 голосов
/ 03 августа 2010

У меня была такая же проблема. Хитрость заключается в том, чтобы сделать потомков LinearLayout не сфокусированными. По сути, ваш LinearLayout должен иметь этот атрибут:

android:descendantFocusability="blocksDescendants"

Ваш TextView все еще будет прокручиваться.

...