2010-01-17 2 views
4

Я хотел бы создать макет элемента ListView, где я могу коснуться определенных частей позиции. Это похоже на поведение Журнала вызовов контактов 2.0, в котором я могу щелкнуть по логотипу зеленого телефона, чтобы инициировать вызов или щелкнуть информацию о входящих вызовах, чтобы получить дополнительную информацию о контакте.Android ListView области с частичным прессованием

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

Я посмотрел исходный код для приложения для контактов, но это очень сложно, и я смог добиться некоторого успеха. У меня есть проблемы, когда исходный код ссылается на Drawables и ресурсы, которые не отображаются в самом SDK.

Я хотел бы разумную реализацию, которая не зависит от внутреннего ресурса android. Или, по крайней мере, некоторые указатели в правильном направлении.

Я ищу решение, которое работает не только с нажатием, но и с 5-сторонней направленной клавиатурой.

Вот график, который показывает, о чем я говорю.

Android Call Log http://the-gadgeteer.com/wp-content/uploads/2009/05/and_cupcake_call-log1-200x300.png

ответ

3

Это выглядит как when setting up each list row в методе newView они устанавливают onClickListener для зеленого call_icon. При привязке вида телефонный номер добавляется к call_icon с помощью метода View.setTag().

Затем, в onClick handler, номер телефона потянут и поступил телефонный звонок Intent.

Все остальные прессы в строке списка обрабатываются обычным способом — Метод onListItemClick.

+1

У меня нормальное поведение. Я использую тег, чтобы определить, как правильно управлять и привязывать OnClickListeners. Проблема в том, что я не могу получить желто-оранжевый фон, если пользователь нажимает на виджет должным образом во всех случаях. В частности, когда они используют 5-клавишную направленную панель, текст становится черным, как ожидалось, но фон остается черным. –

Смежные вопросы