Android – Quick Contact Badge

Dragă cititorule de blog,

Sunt curioasă dacă ai auzit de QuickContactBadge ? Dacă da,  atunci te rog să ridici mâna sus!!! Te văd, te văd…Hmm… La această întrebare ar trebui să ridice toată lumea mâna, deşi recunosc nici eu n-am auzit sau cel puţin nu ştiam că se numeşte aşa.

Ce este de fapt QuickContactBadge?

Răspunsul o să te uimească:  QuickContactBadge este micul-view care apare atunci cănd selectezi un contact şi doreşti să îl apelezi sau să îi trimiţi un mail sau un mesaj text.

Acum că ne-am lămurit eu zic să demonstrăm cât de simplă este utilizarea acestui control. Deci să trecem la treabă! 🙂

Din 2 paşi şi 3 mişcări am rezolvat şi povestea despre Quick Contact Badge . 😉

Pasul 1:  design-ul “măreţei” aplicaţii:

main.xml  ( echivalent cu mişcarea 1)

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical"
    android:padding="10dip">
    <TextView
        android:text="Quick Contact Badges"
        android:gravity="center_horizontal"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:textSize="16dp"
        android:textStyle="bold"
        android:padding="10dip">
    </TextView>
    <LinearLayout android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:gravity="center_horizontal">
    <Button android:padding="10dip"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/pick_contact"
        android:onClick="pickContact_onClick"
        android:text="Pick Contact"
        android:textStyle="bold"
        android:background="@drawable/contact">
    </Button>
    <QuickContactBadge
        android:id="@+id/badge_medium"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    </QuickContactBadge>
    <FrameLayout
        android:id="@+id/badge_holder_large"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
     </FrameLayout>
    </LinearLayout>
</LinearLayout>

Pasul 2:  codul java :

HomeActivity.java  ( echivalent cu mişcarea 2)

package org.app.quick;

import android.app.Activity;
import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.provider.ContactsContract;
import android.provider.ContactsContract.Contacts;
import android.view.View;
import android.widget.FrameLayout;
import android.widget.QuickContactBadge;

public class HomeActivity extends Activity
{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    public void pickContact_onClick(View view)
    {
        Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,
                Contacts.CONTENT_URI);
        startActivityForResult(contactPickerIntent, 23);
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data)
    {
        if (resultCode == RESULT_OK && requestCode==23)
        {
                Uri contactUri = data.getData();
                FrameLayout badgeLargeHolder = (FrameLayout) findViewById(R.id.badge_holder_large);
                QuickContactBadge badgeLarge = new QuickContactBadge(this);
                badgeLarge.assignContactUri(contactUri);
                badgeLarge.setMode(ContactsContract.QuickContact.MODE_LARGE);
                badgeLarge.setImageResource(R.drawable.details);
                badgeLargeHolder.addView(badgeLarge);
        }
    }
}

Pentru a avea acces la contactele salvate în telefon este necesară o permisiune pe care o vom adăuga în fişierul manifest. ( a se citi “mişcarea 3”)

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

Ce concluzii ar trebui să desprinzi?

O să sune un pic a stereotip, dar totuşi lucrurile nu sunt atât de dificile precum par,  iar dacă totuşi sunt de neînţeles, la prima vedere, atunci simplifică-le! 😉

Cu drag şi procupată de opinia ta,

un blogger la început de drum,

Magda 🙂

Advertisements
Android – Quick Contact Badge

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s