Как я могу передать строку через внутренний класс, не завершая его - PullRequest
0 голосов
/ 26 января 2011

Я реализовал ListView и хочу, чтобы OnClickListener использовал параметр длинного идентификатора (т. Е. Какой элемент из списка был выбран), чтобы индексировать строку [], из которой я заполняю список, чтобы я мог передать эту строку то есть. текст конкретного элемента, который я нажал. Я бы сделал это окончательно, но это было бы проблемой, так как мне нужно заполнить этот список позже в жизненном цикле программы (что, как вы могли бы сказать, невозможно сделать со строкой, я, вероятно, переключусь на StringBuilder [], но если у кого-то есть советы по этой части, не стесняйтесь). Я надеюсь, что это не смущает, чтобы дать некоторую детализацию того, что я делаю, я заполняю ListView из String [], собранной из базы данных mysql, а затем собираюсь позже отсортировать список на основе близости (полученной из положения GPS ) поэтому, поскольку идентификатор для элемента списка будет отличаться для каждого человека, я собираюсь передать текстовую строку, составляющую элемент в списке, по которому щелкнули, поэтому использование одного только идентификатора элемента невозможно, поскольку идентификатор элемента для Отдельный список (который был пересортирован) будет бесполезен для сервера. Кто-нибудь может посоветовать мне, как сделать это возможным или потенциальным обходным путем?

1 Ответ

1 голос
/ 26 января 2011

Не используйте OnClickListener с ListView.Используйте AdapterView.OnItemSelectedListener.Когда вы переопределяете его метод onItemSelected (родительский объект AdapterView, представление View, int position, long id), вы получаете ListView, представление, которое было выбрано в списке, его положение и его id в качестве параметров.Если список - это просто TextViews, как в обычном ArrayAdapter, вы можете просто использовать view.getText (). ToString (), чтобы получить String.

...