Освой программирование играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

QuickContactBadge

Данный элемент используется для показа изображения в стандартном бейдже контактов и реагирует на нажатия. Является потомком от ImageView и ведёт себя как ImageButton, добавляя к картинке маленький треугольник в углу. При нажатии появляется панель быстрого доступа с ярлыками для связи с выбранным контактом - вызов по телефону, отправка по SMS, электронная почта и система мгновенного обмена сообщениями. Какого-то большого смысла в использовании данного виджета я не вижу, может недостаточно много работал с программами, использующими контакты.

Элемент QuickContactBadge находится в разделе Widgets.


<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    tools:context=".MainActivity" >

    <QuickContactBadge
        android:id="@+id/quickContactBadge1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/caticon" />

</LinearLayout>

В данном случае я использовал готовый значок с котёнком для бейджа. Других интересных настроек я не нашёл. Переходим к коду. При нажатии на бейдж пользователь может добавить в "Контакты" электронный адрес, телефон или веб-адрес. Покажу на одном примере с использованием почты:


package ru.alexanderklimov.quickcontactbadge.demo;

import android.os.Bundle;
import android.provider.Contacts;
import android.provider.ContactsContract;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.QuickContactBadge;
import android.support.v4.app.NavUtils;

public class MainActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        QuickContactBadge badge = (QuickContactBadge) findViewById(R.id.quickContactBadge1);
        badge.assignContactFromEmail("[email protected]", true);
        
        //badge.setImageResource(R.drawable.ic_launcher);
        //badge.setImageToDefault();
     }
}

Запустите проект и попробуйте нажать на бейдж. У вас откроется диалоговое окно с предложением добавить указанный адрес в Контакты. Если вы соглашаетесь, то адрес будет заведён на устройстве (как новый контакт или добавлен в уже существующий). Однако, если в базе контактов уже есть такой адрес, то диалогового окна не появится, а вы сразу окажетесь на странице контакта, у которого уже есть такой адрес. Можете в этом сами убедиться, если второй раз нажмёте на бейдж.

Вот и всё, что можно сказать об этом элементе. В коде есть две закомментированные строчки. В первой указан программный метод установки нужного изображения (вместо XML-атрибута, о котором я говорил выше), во второй строчке вызывается метод для сброса изображения в стандартный вид.

QuickContactBadge

Реклама