Связать действие с элементом в XML ListViews в Android - PullRequest
1 голос
/ 22 марта 2010

У меня есть ListView, который заполняется с использованием файла XML. Тем не менее, я хочу, чтобы каждый элемент при нажатии запускал новое действие, связанное с этим элементом.

Я понимаю, как использовать OnItemClick для запуска тоста, который показывает текст выбранного элемента. Однако, поскольку ListView заполняется из XML, для каждого элемента в списке нет определенного идентификатора.

Итак, как бы я связал Activity с каждым элементом в ListView, если у элементов нет идентификаторов?

1 Ответ

0 голосов
/ 22 марта 2010

Сохраните в вашем XML-файле узел для Activity, который должен быть вызван, в числовом или строковом формате. Затем составьте список действий в коллекции, которые реализуют определенный интерфейс / абстрактный класс, чтобы вы могли выполнить цикл по нему. Также у действий есть статическое поле / метод, который возвращает их ссылочный номер или строку, чтобы вы тоже могли их сравнить.

Некоторые зарисовки:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <category
        name="Item One"
        id="grp1" />
    <category
        name="Item Two"
        id="grp2" />
</resources>

В Java:

    List<AbstractTable> col = new ArrayList<AbstractTable>();
    col.add(new clsGroup1(this.ctx));
    col.add(new clsGroup2(this.ctx));

    for (AbstractTablecls : col) {
                if (cls.getTag().equals(varFromListSelection)) {
                         //launch intent of this class
                }
            }

где getTag() возвращает идентификатор для класса, например: grp1 или grp2

...