Saturday, October 18, 2014

Aplikasi Contact Android

Cara Kerja
Aplikasi ini bekerja dengan cara membaca kontak yang terdapat pada HP dan kemudian menampilkan nya pada layar, pengguna juga dapat melakukan panggilan dengan cara meng-klik nomer yang muncul pada layar.

Source Code
activity_main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <ListView
        android:id="@android:id/list"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent" />

</RelativeLayout>

main.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
           xmlns:tools="http://schemas.android.com/tools"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           android:paddingBottom="@dimen/activity_vertical_margin"
           android:paddingLeft="@dimen/activity_horizontal_margin"
           android:paddingRight="@dimen/activity_horizontal_margin"
           android:paddingTop="@dimen/activity_vertical_margin"
           tools:context=".MainActivity" >
      
           <ListView
               android:id="@android:id/list"
               android:layout_width="fill_parent"
               android:layout_height="fill_parent" />
      
       </RelativeLayout>

AndroidManifest.xml

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.example.contactlistviewwithnamenumber"
    android:versionCode="1"
    android:versionName="1.0" >

    <uses-sdk
        android:minSdkVersion="L"
        android:targetSdkVersion="18" />
   
    <uses-permission android:name="android.permission.READ_CONTACTS"/>

    <application
        android:allowBackup="true"
        android:icon="@drawable/ic_launcher"
        android:label="@string/app_name"
        android:theme="@style/AppTheme" >
        <activity
            android:name="com.example.contactlistviewwithnamenumber.MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>

</manifest>


MainActivity.java

package com.example.contactlistviewwithnamenumber;

import android.os.Bundle;
import android.provider.ContactsContract;
import android.app.Activity;
import android.app.ListActivity;
import android.database.Cursor;
import android.graphics.drawable.GradientDrawable;
import android.graphics.drawable.GradientDrawable.Orientation;
import android.view.Menu;
import android.widget.ListView;
import android.widget.SimpleCursorAdapter;

public class MainActivity extends ListActivity {

      
       @Override
       public long getSelectedItemId() {
              // TODO Auto-generated method stub
              return super.getSelectedItemId();
       }

       @Override
       public int getSelectedItemPosition() {
              // TODO Auto-generated method stub
              return super.getSelectedItemPosition();
       }
      
       ListView lv;
       Cursor cursor;
      

       @Override
       protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
              cursor = getContentResolver().query(ContactsContract.CommonDataKinds.Phone.CONTENT_URI, null, null, null, null);
              startManagingCursor(cursor);
              String[] from = {ContactsContract.CommonDataKinds.Phone.DISPLAY_NAME, ContactsContract.CommonDataKinds.Phone.NUMBER, ContactsContract.CommonDataKinds.Phone._ID};
              int[] to = {android.R.id.text1, android.R.id.text2};
              AlternateRowCursorAdapter listadapter = new AlternateRowCursorAdapter(this, android.R.layout.simple_list_item_2, cursor, from, to);
              setListAdapter(listadapter);     

              lv = getListView();
              int[] colors = {0, 0x00000000, 0};
              lv.setDivider(new GradientDrawable(Orientation.RIGHT_LEFT, colors));
              lv.setDividerHeight(1);
              lv.setChoiceMode(ListView.CHOICE_MODE_MULTIPLE);
             
       }

       @Override
       public boolean onCreateOptionsMenu(Menu menu) {

              getMenuInflater().inflate(R.menu.main, menu);
              return true;
       }

}

AlternateRowCursorAdapter.java

package com.example.contactlistviewwithnamenumber;
import android.content.Context;
import android.database.Cursor;
import android.graphics.Color;
import android.view.View;
import android.view.ViewGroup;
import android.widget.SimpleCursorAdapter;

public class AlternateRowCursorAdapter extends SimpleCursorAdapter{

       private int[] colors = new int[] {
              Color.parseColor("#F0F0F0"), Color.parseColor("#D2E4FC")
       };
      
       public AlternateRowCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to) {
              super(context, layout, c, from, to);
       }


       @Override
       public View getView(int position, View convertView, ViewGroup parent) {
              View view = super.getView(position, convertView, parent);
              int colorPos = position % colors.length;
              view.setBackgroundColor(colors[colorPos]);
              return view;
       }
}

 
 Screenshot

 
 

No comments:

Post a Comment