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>

Что я попробовал и потерпел неудачу:

  1. Определите один значок многократного использования и используйте его для всех случаев. И список, и значок размещены в RelativeLayout
  2. Определите один значок для каждого элемента списка. Предмет использует 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 обработчик, но значок никогда не появляется

Вопросы:

  1. Есть ли QuickContactBadge есть ли логика размещения? Когда я нажимаю на изображение, мне нужно рассчитать положение значка и перенастроить его или оно встроено?
  2. Можно ли добиться того, что я описал выше (значок для изображений, отображаемых в списке) и что я делаю неправильно (или отсутствует)

1 ответ

Решение

Прекратить! Прекратить!

По сути, я совершенно не понял, что такое значок и как его использовать. То, что я пытался сделать, это обнаружить щелчок по изображению и вызвать значок. Это в корне неверно, так как мне нужно было просто использовать QuickContactBadge Вместо ImageView в моем коде. После того, как я заменил изображения значками в элементе, там автоматически появилось волшебство XML.

Сказал, что - это можно получить значок с помощью кода, обратитесь к этой статье о том, как это сделать

Другие вопросы по тегам