Освой программирование играючи
/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000
Данный элемент используется для показа изображения в стандартном бейдже контактов и реагирует на нажатия. Является потомком от 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-атрибута, о котором я говорил выше), во второй строчке вызывается метод для сброса изображения в стандартный вид.