Android: QuickContactBadge в ListView
Сначала сценарий:
У меня есть список, где каждый элемент имеет фотографию контакта и текст. Я хотел бы нажать на изображение и вызвать QuickContactBadge
, Значок определяется следующим фрагментом XML
<QuickContactBadge android:layout_height="wrap_content"
android:layout_width="wrap_content" android:id="@+id/badge"
android:layout_alignParentBottom="true"></QuickContactBadge>
Что я попробовал и потерпел неудачу:
- Определите один значок многократного использования и используйте его для всех случаев. И список, и значок размещены в
RelativeLayout
- Определите один значок для каждого элемента списка. Предмет использует
RelativeLayout
Что я вижу:
В принципе ничего. Код получает действительный экземпляр значка, а затем я применяю следующую логику
contactPhoto.setOnClickListener(new OnClickListener() {
@Override
public void onClick(final View v) {
Log.d(TAG, "Image click");
if (badge != null) {
badge.assignContactFromEmail("johndoe@gmail.com", true);
badge.setMode(ContactsContract.QuickContact.MODE_SMALL);
badge.bringToFront();
}
}
});
Когда я нажимаю, я могу пройти по коду в onClick
обработчик, но значок никогда не появляется
Вопросы:
- Есть ли
QuickContactBadge
есть ли логика размещения? Когда я нажимаю на изображение, мне нужно рассчитать положение значка и перенастроить его или оно встроено? - Можно ли добиться того, что я описал выше (значок для изображений, отображаемых в списке) и что я делаю неправильно (или отсутствует)
1 ответ
Прекратить! Прекратить!
По сути, я совершенно не понял, что такое значок и как его использовать. То, что я пытался сделать, это обнаружить щелчок по изображению и вызвать значок. Это в корне неверно, так как мне нужно было просто использовать QuickContactBadge
Вместо ImageView
в моем коде. После того, как я заменил изображения значками в элементе, там автоматически появилось волшебство XML.
Сказал, что - это можно получить значок с помощью кода, обратитесь к этой статье о том, как это сделать