Как звонить, Android связывается со списком?

Вы можете ссылаться только на ресурсы Azure, используя функцию reference(), а не на объекты Azure AD. это невозможно. Вы должны сделать это вне шаблона и передать отображаемое имя в шаблон.

131
задан Bill the Lizard 14 May 2011 в 13:36
поделиться

2 ответа

Я думаю, что ответ Sharptooth точен. Раздел 12.3.4 стандарта C ++ (SC22-N-4411.pdf), озаглавленный «Преобразования», поясняет, что разрешено только одно неявное определяемое пользователем преобразование.

1 Преобразования типов объектов класса могут быть указаны с помощью конструкторы и преобразованием функции. Эти преобразования называются пользовательскими преобразованиями и используются для неявных преобразований типов (пункт 4), для инициализация (8.5), а для явных преобразований типов (5.4, 5.2.9).

2 Пользовательские преобразования применяются только там, где они однозначно (10.2, 12.3.2). Преобразования подчиняются правила контроля доступа (п.11). Контроль доступа применяется после разрешение неоднозначности (3.4).

3 [Примечание: См. 13.3 для обсуждения использования преобразований в вызовах функций, а также в примерах ниже. -конец note]

4 Не более одного определяемого пользователем преобразования (конструктор или преобразование функция) неявно применяется к не замужем Я не уверен на 100%, что должен делать ваш пример кода, но следующий фрагмент должен помочь вам «вызвать функцию списка контактов, выбрать контакт, а затем вернуться в [ваше] приложение с именем контакта».

три шага к этому процессу.

1. Разрешения

Добавьте разрешение на чтение данных контактов в манифест приложения.

<uses-permission android:name="android.permission.READ_CONTACTS"/>

2. Вызов средства выбора контактов

. В рамках действия создайте намерение, которое просит систему найти действие, которое может выполнить действие ВЫБОР из элементов в URI контактов.

Intent intent = new Intent(Intent.ACTION_PICK, ContactsContract.Contacts.CONTENT_URI);

Вызов startActivityForResult , передавая это намерение (и целое число кода запроса, PICK_CONTACT в этом примере). Это заставит Android запустить действие, зарегистрированное для поддержки ACTION_PICK на People.CONTENT_URI , затем вернитесь к этому действию, когда выбор будет сделан (или отменен).

startActivityForResult(intent, PICK_CONTACT);

3. Прослушивание результата

Также в своем действии переопределите метод onActivityResult для прослушивания возврата от действия «выбор контакта», которое вы запустили на шаге 2. Вы должны убедиться, что возвращенный код запроса соответствует ожидаемое значение и код результата RESULT_OK .

Вы можете получить URI выбранного контакта, вызвав getData () для данных Параметр намерения. Чтобы получить имя выбранного контакта, вам необходимо использовать этот URI для создания нового запроса и извлечения имени из возвращенного курсора.

@Override
public void onActivityResult(int reqCode, int resultCode, Intent data) {
  super.onActivityResult(reqCode, resultCode, data);

  switch (reqCode) {
    case (PICK_CONTACT) :
      if (resultCode == Activity.RESULT_OK) {
        Uri contactData = data.getData();
        Cursor c =  getContentResolver().query(contactData, null, null, null, null);
        if (c.moveToFirst()) {
          String name = c.getString(c.getColumnIndex(ContactsContract.Contacts.DISPLAY_NAME));
          // TODO Whatever you want to do with the selected contact name.
        }
      }
      break;
  }
}

Полный исходный код: tutorials-android.blogspot.com (как вызвать android список контактов) .

249
ответ дан 24 November 2019 в 00:14
поделиться

При поиске решения API уровня 5 с использованием API ContactsContract вы можете немного изменить код выше следующим образом:

  Intent intent = new Intent(Intent.ACTION_PICK);
  intent.setType(ContactsContract.Contacts.CONTENT_TYPE);
  startActivityForResult(intent, PICK_CONTACT);

Затем в onActivityResult используйте имя столбца:

  ContactsContract.Contacts.DISPLAY_NAME
14
ответ дан 24 November 2019 в 00:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: