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

 
 

Sunday, October 12, 2014

Kalkulator BMI

Tujuan
Program ini bertujuan untuk memudahkan BMI (Body Mass Index) secara mudah tanpa harus mengakses halaman web.

Cara membuat
1. Hal pertama yang harus di lakukan adalah membuat GUI dari aplikasi, dengan cara drag drop pallete yang tersedia di bagi kiri ke bagian kanvas device.


Setelah selesai, akan muncul warning, hal ini dapat di atasi dengan cara menambahkan potongan kode berikut ke dalam masing – masing element EditText.

android:inputType="text" atau android:inputType="number"

Untuk warning pada bagian TextView, dapat di atasi dengan menambahkan variabel pada strings.xml dan kemudian memanggil nya dengan di masing – masing element TextView.

2. Hal kedua yang harus di lakukan adalah menambahkan aksi pada button untuk menghitung BMI serta menampilkan nya pada EditText. Berikut kode untuk melakukan hal tersebut

check.setOnClickListener(
        new View.OnClickListener() {
@Override
public void onClick(View v) {
float tempTinggi = Float.parseFloat(tinggi.getText().toString());
float tempBerat = Float.parseFloat(berat.getText().toString());
float tempHasil = tempBerat/(tempTinggi*tempTinggi);
String stringHasil = getHasil (tempHasil);
hasil.setText(stringHasil);
}
});

Berikut kode fungsi getHasil

public String getHasil (float hasil) {
    String stringHasil=null;
    if (hasil < 18.5) {
    stringHasil = "kurus";
    }
    else if (hasil > 18.5 && hasil <24.99) {
    stringHasil = "normal";
    }
    else if (hasil >= 25 && hasil < 30) {
    stringHasil = "gemuk";
    }
    else if (hasil >= 30) {
    stringHasil = "obesitas";
    }
    return stringHasil; 
 }

Screenshoot
Berikut tampilan applikasi yang telah bisa di jalankan di android