Monday, 15 June 2015

Laporan Praktikum 7 | HTTP CONNECTION

Pembahasan selanjutnya adalah menghubungkan aplikasiandroid dengan internet dengan menggunakan http connection, disini anda akan belajar bagaimana membuat aplikasi terhubung dengan internet untuk mendowload gambar dan teks, serta menggunakan rss.
Buatlah project baru seperti ketentuan berikut :

Project Name : HttpURLConnectionA
Buitl Target : Android 2.2
Application name : HttpURLConnectionA
Package name : com.bogotobogo.httpconnecta
Activity : main.xml
Min SDK :8

Buka file layout/main.xml

main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:scrollbars="vertical">
    <Button
    android:id="@+id/Button01"
    android:text="@string/button01"
    android:layout_height="wrap_content"
    android:layout_width="wrap_content">
    </Button>
    <Button android:id="@+id/Button02"
    android:layout_height="wrap_content"
    android:text="@string/button02"
    android:layout_width="wrap_content">
    </Button>
    <ImageView
    android:id="@+id/imageview01"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:cropToPadding="true" >
    </ImageView>
    <TextView 
    android:id="@+id/textview01"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />
</LinearLayout>

Kita Download keduan gambar dibawah ini
Setelah itu kita copy kedua gambar icon di folder res, Perhatikan gambar berikut




Pada package src/HttpURLConnectionA, bukaHttpURLConnectionA.java pastikan kodenya seperti berikut

HttpURLConnectionA.java
package com.bogotobogo.httpconnecta;

import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;

import android.app.Activity;
import android.app.ProgressDialog;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;

public class HttpURLConnectionA extends Activity {
  
    private ProgressDialog progressDialog;  
    private Bitmap bitmap = null;
    private String text = null;
  
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
      
        Button imageBtn = (Button)findViewById(R.id.Button01);
        Button textBtn = (Button)findViewById(R.id.Button02);
      
        imageBtn.setOnClickListener( new OnClickListener() {
            public void onClick(View v) {
                downloadImage("http://www.bogotobogo.com/images/smalltiger.gif");          
            }
        });
      
        textBtn.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                downloadText("http://www.bogotobogo.com/android.html");
            }
        });
    }
  
    private void downloadImage(String urlStr) {
        progressDialog = ProgressDialog.show(this, "",
                    "Downloading Image from " + urlStr);
        final String url = urlStr;
      
        new Thread() {
            public void run() {
                InputStream in = null;
                Message msg = Message.obtain();
                msg.what = 1;
                try {
                    in = openHttpConnection(url);
                    bitmap = BitmapFactory.decodeStream(in);
                    Bundle b = new Bundle();
                    b.putParcelable("bitmap", bitmap);
                    msg.setData(b);
                    in.close();
                } catch (IOException e1) {
                    e1.printStackTrace();
                }
                messageHandler.sendMessage(msg);                  
            }
         }.start();
    }
  
    private void downloadText(String urlStr) {
        progressDialog = ProgressDialog.show(this, "",
                "Download Text from " + urlStr);
        final String url = urlStr;
      
        new Thread () {
            public void run() {
                int BUFFER_SIZE = 2000;
                InputStream in = null;
                Message msg = Message.obtain();
                msg.what=2;
                try {
                    in = openHttpConnection(url);
                  
                    InputStreamReader isr = new InputStreamReader(in);
                    int charRead;
                      text = "";
                      char[] inputBuffer = new char[BUFFER_SIZE];

                          while ((charRead = isr.read(inputBuffer))>0)
                          {                  
                              String readString =
                                  String.copyValueOf(inputBuffer, 0, charRead);                  
                              text += readString;
                              inputBuffer = new char[BUFFER_SIZE];
                          }
                         Bundle b = new Bundle();
                            b.putString("text", text);
                            msg.setData(b);
                          in.close();
                    
                }catch (IOException e2) {
                    e2.printStackTrace();
                }
                messageHandler.sendMessage(msg);
            }
        }.start();  
    }
  
    private InputStream openHttpConnection(String urlStr) {
        InputStream in = null;
        int resCode = -1;
      
        try {
            URL url = new URL(urlStr);
            URLConnection urlConn = url.openConnection();
          
            if (!(urlConn instanceof HttpURLConnection)) {
                throw new IOException ("URL is not an Http URL");
            }
          
            HttpURLConnection httpConn = (HttpURLConnection)urlConn;
            httpConn.setAllowUserInteraction(false);
            httpConn.setInstanceFollowRedirects(true);
            httpConn.setRequestMethod("GET");
            httpConn.connect();

            resCode = httpConn.getResponseCode();               
            if (resCode == HttpURLConnection.HTTP_OK) {
                in = httpConn.getInputStream();                               
            }       
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return in;
    }
  
    private Handler messageHandler = new Handler() {
      
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what) {
            case 1:
                ImageView img = (ImageView) findViewById(R.id.imageview01);
                img.setImageBitmap((Bitmap)(msg.getData().getParcelable("bitmap")));
                break;
            case 2:
                TextView text = (TextView) findViewById(R.id.textview01);
                text.setText(msg.getData().getString("text"));
                break;
            }
            progressDialog.dismiss();
        }
    };
}

Untuk Mengatasi Terjadi Force Close, Pada package src/AndroidManifest, buka AndroidManifest.xml pastikan kodenya seperti berikut 

AndroidManifest.xml:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      android:versionCode="1"
      android:versionName="1.0" package="com.bogotobogo.httpconnecta">
    <uses-sdk android:minSdkVersion="8" />
    <uses-permission android:name="android.permission.INTERNET"></uses-permission>
    <application android:icon="@drawable/icon" android:label="@string/app_name">
        <activity android:name=".HttpURLConnectionA"
                  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>  

Setelah itu Run dengan shourcut CTRL+F11 atau klik Kanan package > Runa As > Android Projeck. Lihat Hasilnya Seperti Dibawah Ini


Silahkan Download Projectnya Disini DOWNLOAD

Laporan Praktikum 7 | Intent

Buatlah project baru seperti ketentuan berikut :

Project Name : Intent
Buitl Target : Android 2.2
Application name : Intent
Package name : www.percobaan3.com
Activity : database4
Min SDK :8

selanjutnya buka file values/ strings.xml lalumodifikasi codingnya sehingga menjadi seperti berikut :

string.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Try Intent - Aplysit</string>
    <string name="app_name">Try Intent www.aplysit.com</string>
</resources>

Buka file layout/main.xml
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:text="@string/hello"
    />
</LinearLayout>

Buatlah sebuah file formlogin.xml kemudian masukkan coding dibawah ini:
formlogin.xml
<?xml version="1.0" encoding="utf-8"?>
<AbsoluteLayout
   android:id="@+id/widget0"
   android:layout_width="fill_parent"
   android:layout_height="fill_parent"
   xmlns:android="http://schemas.android.com/apk/res/android"
>

<RelativeLayout android:id="@+id/widget61"
   android:layout_height="76px"
   android:background="#ffffff"
   android:layout_x="0px"
   android:layout_y="0px"
   android:layout_width="match_parent">

<TextView android:id="@+id/widget62" 
   android:layout_width="wrap_content"
   android:layout_height="wrap_content"
   android:text="FORM LOGIN"
   android:textSize="20sp"
   android:textStyle="bold"
   android:textColor="#000000"
   android:layout_centerVertical="true"
   android:layout_centerHorizontal="true">
</TextView>
</RelativeLayout>

<TextView android:layout_height="wrap_content"
   android:layout_width="wrap_content"
   android:id="@+id/widget30"
   android:text="NICK"
   android:layout_x="12dip"
   android:layout_y="125dip">
</TextView>

<TextView android:layout_height="wrap_content"
   android:layout_width="wrap_content"
   android:id="@+id/widget31"
   android:text="PWD"
   android:layout_x="18dip"
   android:layout_y="198dip">
</TextView>


<EditText android:layout_height="wrap_content"
   android:text="" android:layout_width="179px"
   android:textSize="18sp"
   android:layout_x="81dip"
   android:layout_y="185dip"
   android:id="@+id/pass_editText">
</EditText>

<EditText android:layout_height="wrap_content"
   android:text=""
   android:layout_width="179px"
   android:textSize="18sp" 
   android:layout_x="78dip"
   android:layout_y="118dip"
   android:id="@+id/name_editText">
</EditText>

<Button android:text="RESET"
   android:layout_height="wrap_content"
   android:layout_width="92px"
   android:layout_x="33dip"
   android:layout_y="277dip"
   android:id="@+id/reset_btn">
</Button>

<Button android:text="SUBMIT" 
   android:layout_height="wrap_content"
   android:layout_width="92px" 
   android:layout_x="181dip"
   android:layout_y="276dip"
   android:id="@+id/submit_btn">
</Button>

</AbsoluteLayout>

Langkah selanjutnya modifikasi file manifest.xml


Nama yang ditulis dalam intent adalah nama dari class yang akan dieksekusi sebagai suatu activity. Dalam percobaan ini, anda akan mengeksekusi kelas login.java maka tambahkan kode dibawah ini pada file manifest.xml

Kemudian buatlah sebuah file UsingIntent.java
UsingIntent.java
package www.percobaan3.com;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class Usingintent extends ListActivity {
    public void onCreate(Bundle icicle) {
        super.onCreate(icicle);
        //Menyusun menu
        String[] menu = new String[]{"Login","Exit"};
       
        // Menampilkan menu di LisstMenu
        this.setListAdapter(new ArrayAdapter<String>(this,
    android.R.layout.simple_list_item_1, menu));
    }
   
    @Override
 protected void onListItemClick(ListView l, View v, int position, long id) {
  super.onListItemClick(l, v, position, id);
 
  // Menangkap nilai text yang dklik
  Object o = this.getListAdapter().getItem(position);
  String pilihan = o.toString();
  tampilkanPilihan(pilihan);
 }
   
    protected void tampilkanPilihan(String pilihan) {
   //Intent digunakan untuk sebagai pengenal suatu activity
   Intent i = null;
   if (pilihan.equals("Login")) {    
 
    i = new Intent(this, login.class);
   }
   else if (pilihan.equals("Exit")) {
    finish();
   }
  
   startActivity(i);

 }
   
}

Perhatikan pada baris intent didefinisikan i adalah sebuah intent. Jika tombol menu login yang di pilih, maka intent i akan bernilai sebagai login.class dan kelas tersebut akan diaktifkan, sebagai efeknya jika anda berada pada form login dan menekan tombol back   maka anda dibawah kembali kedaftar menu pertama.

Lalu buatlah sebuah file login.java
login.java
package www.percobaan3.com;

import www.percobaan3.com.R;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class login extends Activity {
 public String nama;
 EditText name;
 EditText pass;

 public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.formlogin);
       
        name = (EditText) findViewById(R.id.name_editText);
        pass = (EditText) findViewById(R.id.pass_editText);
       
       
        Button reset = (Button) findViewById(R.id.reset_btn);
        reset.setOnClickListener(new OnClickListener() {
            public void onClick(View arg0) {
    // TODO Auto-generated method stub
    name.setText("");
    pass.setText("");
   }
        });
       
        Button submit = (Button) findViewById(R.id.submit_btn);
        submit.setOnClickListener(new OnClickListener() {
   public void onClick(View v) {
          // TODO Auto-generated method stub
    nama = name.getText().toString();
    Toast.makeText(getApplicationContext(), "Welcome "+nama,
7).show();
         }
         });
 }
}

Berikut Hasil Runningnya


 Silahkan Download Projectnya Disini DOWNLOAD




Laporan Praktikum 7 | Thread

Percobaan kali ini adalah untuk membuat sebuah thread yang akan menampilkan pesan
secara terus menerus dan sebuah bilangan acak.

Buatlah project baru seperti ketentuan berikut :
Project Name : Thread
Buitl Target : Android 2.2
Application name : Thread
Package name : www.percobaan2.com
Activity : database4
Min SDK :8

Buka file values/string.xml lalu modifikasi sehingga menjadi source berikut ini:

string.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string name="hello">Aplysit - IT Solution Center</string>
    <string name="app_name">Try Thread - www.aplysit.com</string>
</resources>

Selanjutnya main.xml lalu modifikasi codingnya

main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
<TextView 
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" 
    android:text="@string/hello"
    />
<Button android:text="Start"
    android:layout_height="wrap_content"
android:id="@+id/btn_start"
android:layout_width="wrap_content">
   
</Button>
<Button android:text="Stop"
    android:layout_height="wrap_content"
android:id="@+id/btn_stop"
android:layout_width="wrap_content">
   
</Button>
</LinearLayout>
 
Lalu buatlah sebuah file benama mythread.java ketikkan coding dibawah ini

Mythread.java
package www.percobaan2.com;


import android.content.Context;
import android.os.Handler;

public class Mythread {
 public Handler mhandler;
 public showText text;

 public Mythread (Context context, Handler handler){
  mhandler = handler;
 }

 public synchronized void startShowText() {
  if (text == null) {
   text = new showText();
   text.start();
  }
 }

 public synchronized void stopShowText() {
  if (text != null) {
   text.requestStop();
   text = null;
  }
 }

 private class showText extends Thread {
  private volatile boolean stop = false;
   
  public void run() {
   while ((!stop)){   
    mhandler.obtainMessage(threadsimple.run,"Pesan dari thread" + Math.random()).sendToTarget();
    try {
     sleep(3000);
    }
    catch (Exception e){}
   }
   if (stop) {
    mhandler.obtainMessage(threadsimple.stop).sendToTarget();
   }
  }
 
  public synchronized void requestStop() {
            stop = true;
  }
 }
}

Kemudian buatlah sebuah file threadsimple.java lalu masukkan coding dibawah ini:
  
threadsimple.java
package www.percobaan2.com;

import www.percobaan2.com.R;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class threadsimple extends Activity {
 public static final int run = 1;
 public static final int stop = 2;
 public Mythread thread;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
       
        Button start = (Button)findViewById(R.id.btn_start);
        start.setOnClickListener(new OnClickListener() {
   public void onClick(View v) {
    //  TODO Auto-generated method stub
       thread.startShowText();
       System.out.println("run");
   }
        });
       
        Button stop = (Button)findViewById(R.id.btn_stop);
        stop.setOnClickListener(new OnClickListener() {
   public void onClick(View v) {
    //  TODO Auto-generated method stub
       thread.stopShowText();
       System.out.println("stop");
   }
        });
    }
    public void onStart() {
        super.onStart();
        thread = new Mythread(this, mHandler);
       }
      
       private final Handler mHandler = new Handler() {
           @Override
           public void handleMessage(Message msg) {
               switch (msg.what) {
               case run:
                Toast.makeText(getApplicationContext(), msg.obj.toString(), 2).show();
               break;
               case stop:
                Toast.makeText(getApplicationContext(), "Thread Stop", 2).show();
               break;
               }
           }
       };
   }
    

Hasil Runningnya Seperti dibawah ini

Silahkan Download Projectnya Disini DOWNLOAD

Laporan Praktikum 6 | Tugas 2 | Membuat Menu Register dan Viewlist

uatlah project baru seperti ketentuan berikut :

Project Name : Tugas2
Buitl Target : Android 2.2
Application name : DBPratice
Package name : com.wilis.database4
Activity : main
 Min SDK :8

Disini Saya Menggunakan 6 Layout



Pada Package Explorer, Buka file main.xml di folder res/layout, perhatikan gambar berikut


Ganti Kode pada main.xml menjadi seperti berikut

 main.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >
    <TextView android:layout_height="wrap_content"
        android:id="@+id/textViewMainHeading"
        android:layout_width="wrap_content"
        android:text="Slect your choice"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true">
       
    </TextView>
    <Button android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="Register" android:id="@+id/buttonMainRegister"
        android:layout_below="@+id/textViewMainHeading"
        android:layout_centerHorizontal="true" android:layout_marginTop="70dp">
       
    </Button>
    <Button android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="View List and Details"
        android:id="@+id/ButtonMainList"
        android:layout_below="@+id/textViewMainHeading"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="133dp">
       
    </Button>
</RelativeLayout>

registration.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
    <Button android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:id="@+id/buttonRegisterBack"
        android:text="Back">
       
    </Button>
    <EditText android:layout_height="wrap_content"
        android:inputType="textPersonName"
        android:id="@+id/editTextRegName"
        android:layout_width="120dp"
        android:layout_below="@+id/buttonRegisterBack"
        android:layout_toRightOf="@+id/textViewRegName"
        android:layout_marginLeft="51dp"
        android:layout_marginTop="18dp">
        <requestFocus>
           
        </requestFocus>
    </EditText>
    <TextView android:layout_height="wrap_content"
        android:id="@+id/textViewRegName"
        android:layout_width="wrap_content"
        android:text="Name"
        android:layout_alignBottom="@+id/editTextRegName"
        android:layout_toRightOf="@+id/buttonRegisterBack"
        android:layout_marginLeft="36dp"
        android:layout_marginBottom="14dp">
       
    </TextView>
    <EditText android:layout_height="wrap_content"
        android:inputType="textPostalAddress"
        android:layout_width="120dp"
        android:layout_below="@+id/editTextRegName"
        android:layout_alignLeft="@+id/editTextRegName"
        android:layout_marginTop="26dp"
        android:id="@+id/editTextRegAddress">
       
    </EditText>
    <TextView android:layout_height="wrap_content"
        android:id="@+id/textViewRegAddress"
        android:layout_width="wrap_content"
        android:text="Address"
        android:layout_alignTop="@+id/editTextRegAddress"
        android:layout_alignLeft="@+id/textViewRegName"
        android:layout_marginTop="14dp">
       
    </TextView>
    <EditText android:layout_height="wrap_content"
        android:inputType="phone"
        android:layout_centerVertical="true"
        android:layout_alignLeft="@+id/editTextRegAddress"
        android:id="@+id/editTextRegPhone"
        android:layout_width="120dp">
       
    </EditText>
    <TextView android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_centerVertical="true"
        android:layout_alignLeft="@+id/textViewRegAddress"
        android:id="@+id/textViewRegPhone"
        android:text="Phone No.">
       
    </TextView>
    <Button android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_below="@+id/editTextRegPhone"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="38dp"
        android:id="@+id/buttonRegister"
        android:text="Register">
       
    </Button>
    <ImageView android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/login_icon"
        android:layout_below="@+id/buttonRegister"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="38dp"
        android:id="@+id/imageViewRegLogin">
       
    </ImageView>
   
</RelativeLayout>

details_users.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
    <ImageView android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/login_icon"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="31dp"
        android:id="@+id/imageViewDetailsUserIcon">
       
    </ImageView>
    <TextView android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_below="@+id/imageViewDetailsUserIcon"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="51dp"
        android:id="@+id/textViewDetailsName"
        android:text="Name">
       
    </TextView>
    <TextView android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_below="@+id/textViewDetailsName"
        android:layout_alignLeft="@+id/textViewDetailsName"
        android:layout_marginTop="28dp"
        android:id="@+id/textViewDetailsAddress"
        android:text="Address">
       
    </TextView>
    <TextView android:layout_height="wrap_content"
        android:id="@+id/textViewDetailsPhone"
         android:layout_width="wrap_content"
         android:layout_below="@+id/textViewDetailsAddress"
         android:layout_alignLeft="@+id/textViewDetailsAddress"
         android:layout_marginTop="28dp"
         android:text="Phone">
       
    </TextView>
    <Button android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:id="@+id/buttonDetailsBack"
        android:text="Back">
       
    </Button>
    <Button android:id="@+id/buttonEditDetails"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Edit Details"
        android:layout_below="@+id/textViewDetailsPhone"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="44dp">
       
    </Button>
   
</RelativeLayout>

edit_user.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
    <Button android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_alignParentLeft="true"
        android:id="@+id/buttonEditBack"
        android:text="Back">
       
    </Button>
    <TextView android:layout_height="wrap_content"
        android:id="@+id/textViewEditAddress"
        android:layout_width="wrap_content"
        android:text="Address"
        android:layout_alignTop="@+id/editTextEditAddress"
        android:layout_alignLeft="@+id/textViewEditName"
        android:layout_marginTop="14dp">
       
    </TextView>
    <Button android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:layout_below="@+id/editTextEditPhone"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="38dp"
        android:id="@+id/buttonEdit"
        android:text="Update">
       
    </Button>
    <ImageView android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/login_icon"
        android:layout_below="@+id/buttonEdit"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="38dp"
        android:id="@+id/imageViewEditLogin">
       
    </ImageView>
    <TextView android:id="@+id/textViewEditName"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Name"
        android:layout_alignBottom="@+id/editTextEditName"
        android:layout_toRightOf="@+id/buttonEditBack"
        android:layout_marginBottom="14dp">
       
    </TextView>
    <EditText android:layout_width="120dp"
        android:inputType="textPersonName"
        android:layout_height="wrap_content"
        android:id="@+id/editTextEditName"
        android:layout_below="@+id/buttonEditBack"
        android:layout_alignLeft="@+id/buttonEdit">
        <requestFocus>
           
        </requestFocus>
    </EditText>
    <EditText android:layout_width="120dp"
        android:inputType="textPostalAddress"
        android:layout_height="wrap_content"
        android:id="@+id/editTextEditAddress"
        android:layout_below="@+id/editTextEditName"
        android:layout_alignLeft="@+id/editTextEditName"
        android:layout_marginTop="14dp">
       
    </EditText>
    <EditText android:layout_width="120dp"
        android:inputType="phone"
        android:layout_height="wrap_content"
        android:id="@+id/editTextEditPhone"
        android:layout_below="@+id/editTextEditAddress"
        android:layout_alignLeft="@+id/editTextEditAddress"
        android:layout_marginTop="14dp">
       
    </EditText>
    <TextView android:id="@+id/textViewEditPhone"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Phone No."
        android:layout_alignTop="@+id/editTextEditPhone"
        android:layout_toRightOf="@+id/buttonEditBack"
        android:layout_marginTop="15dp">
       
    </TextView>
</RelativeLayout>

list_users.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent">
    <ImageView
        android:id="@+id/icon"
        android:layout_width="22px"
        android:layout_height="22px"
        android:layout_marginLeft="4px"
        android:layout_marginRight="10px"
        android:layout_marginTop="4px"
        android:src="@drawable/login_icon" >
    </ImageView>

    <TextView
        android:id="@+id/textViewList"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@+id/icon"
        android:layout_marginLeft="20dp"
        android:layout_toRightOf="@+id/icon"
        android:text="@+id/label"
        android:textSize="20px" />
   
</RelativeLayout>

Kita Download keduan gambar dibawah ini


 Setelah itu kita copy kedua gambar icon di folder res, Perhatikan gambar berikut


Sekerang kita akan membuat classnya, disni saya menggunakan 2 package masing" mempunyai classnya, perhatikan gambar berikut


Berikut Sourcodenya
Pada package src/DBPracticeActivity, buka DBPracticeActivity.java pastikan kodenya seperti berikut

DBPracticeActivity.java
package com.example.activity;

import com.example.db.R;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;

public class DBPracticeActivity extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        Button regButton = (Button)findViewById(R.id.buttonMainRegister);
        Button listButton = (Button)findViewById(R.id.ButtonMainList);
        regButton.setOnClickListener(this);
        listButton.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        Intent intent;
        switch(v.getId()) {
        case R.id.buttonMainRegister :
            intent = new Intent();
            intent.setClass(getApplicationContext(), Registration.class);
            startActivity(intent);
            break;
        case R.id.ButtonMainList :
            intent = new Intent();
            intent.setClass(getApplicationContext(), ListUsers.class);
            startActivity(intent);
            break;
        }
    }
}

DetailsUsers.java
package com.example.activity;

import com.example.db.DatabaseHandler;
import com.example.db.R;
import com.example.db.User;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.TextView;

public class DetailsUsers  extends Activity implements OnClickListener{
    private static String position = null;
   
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.details_users);
        Intent intent = getIntent();
        position = intent.getStringExtra("position");
        Log.d("value of position from intent", position);
        DatabaseHandler db = new DatabaseHandler(this);
        User user = db.getUser(position);
        TextView textViewDetailName = (TextView) findViewById(R.id.textViewDetailsName);
        textViewDetailName.setText(user.getName());
       
        TextView textViewDetailAddress = (TextView) findViewById(R.id.textViewDetailsAddress);
        textViewDetailAddress.setText(user.getAddress());
       
        TextView textViewDetailsPhone = (TextView) findViewById(R.id.textViewDetailsPhone);
        textViewDetailsPhone.setText(user.getPhone());
       
        Button backButton = (Button)findViewById(R.id.buttonDetailsBack);
        backButton.setOnClickListener(this);
       
        Button editButton = (Button)findViewById(R.id.buttonEditDetails);
        editButton.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if(v.getId() == R.id.buttonDetailsBack) {
            Intent intent = new Intent(getApplicationContext(), ListUsers.class);
            startActivity(intent);
        }
        else if(v.getId() == R.id.buttonEditDetails) {
            Intent intent = new Intent(getApplicationContext(), EditUsers.class);
            intent.putExtra("position", position);
            startActivity(intent);
        }
    }
}

EditUsers.java

package com.example.activity;

import com.example.db.DatabaseHandler;
import com.example.db.R;
import com.example.db.User;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class EditUsers extends Activity implements OnClickListener{
    private static String position = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.edit_user);
        Intent intent = getIntent();
        position = intent.getStringExtra("position");

        DatabaseHandler db = new DatabaseHandler(this);
        Log.d("position", position);
        //get user for the position clicked for edit
        User user = db.getUser(position);
       
        Log.d("User Name", user.getName());
        Log.d("Address", user.getAddress());
        Log.d("Users phone", user.getPhone());
       
        //set the values in editText boxes
        EditText name = ((EditText)findViewById(R.id.editTextEditName));
        name.setText(user.getName());
        EditText address = ((EditText)findViewById(R.id.editTextEditAddress));
        address.setText(user.getAddress());
        EditText phone = ((EditText)findViewById(R.id.editTextEditPhone));
        phone.setText(user.getPhone());
       
        Button backButton = (Button)findViewById(R.id.buttonEditBack);
        backButton.setOnClickListener(this);
       
        Button updateButton = (Button)findViewById(R.id.buttonEdit);
        updateButton.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        if(v.getId() == R.id.buttonEditBack) {
            Intent intent = new Intent(getApplicationContext(), ListUsers.class);
            startActivity(intent);
        }
        else if(v.getId() == R.id.buttonEdit) {
            User user = new User(
                            ((EditText)findViewById(R.id.editTextEditName)).getText().toString(),
                            ((EditText)findViewById(R.id.editTextEditAddress)).getText().toString(),
                            ((EditText)findViewById(R.id.editTextEditPhone)).getText().toString()
                        );
            DatabaseHandler db = new DatabaseHandler(this);
            int updateCount = db.editUser(user, position);
            if(updateCount == 1) {
                Toast toast = Toast.makeText(getApplicationContext(),
                        "User successfully updated",
                        Toast.LENGTH_SHORT);
                toast.show();
            }
            else{
                Toast toast = Toast.makeText(getApplicationContext(),
                        "User update failed, Try Again",
                        Toast.LENGTH_SHORT);
                toast.show();
            }
        }
    }

}

ListUsers.java
package com.example.activity;

import java.util.List;

import com.example.db.DatabaseHandler;
import com.example.db.R;
import com.example.db.User;

import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.ListView;

public class ListUsers extends ListActivity{
   
    public void onCreate(Bundle icicle) {
     super.onCreate(icicle);
         DatabaseHandler db = new DatabaseHandler(this);
        String[] users = db.getAllUsers();
        if(users!=null) {
            for(String us:users) {
                Log.d("String Array Value", us);
            }
            db.close();
        }
        // Use your own layout
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.list_users, R.id.textViewList, users);
        setListAdapter(adapter);
    }
   
     @Override
      protected void onListItemClick(ListView l, View v, int position, long id) {
        Log.d("On click of a item", Integer.toString(position));
        Intent intent = new Intent();
        intent.setClass(getApplicationContext(), DetailsUsers.class);
        intent.putExtra("position", Integer.toString(position + 1));  //position starts from 0, but in db row starts from 1
        startActivity(intent);
      }
}

Registration.java
package com.example.activity;

import com.example.db.DatabaseHandler;
import com.example.db.R;
import com.example.db.User;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Registration extends Activity implements OnClickListener{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.registration);
        Button regButton = (Button)findViewById(R.id.buttonRegister);
        regButton.setOnClickListener(this);
        Button backButton = (Button)findViewById(R.id.buttonRegisterBack);
        backButton.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        Intent intent;
        switch(v.getId()) {
        case R.id.buttonRegister :
            register();
            break;
        case R.id.buttonRegisterBack :
            intent = new Intent();
            intent.setClass(getApplicationContext(), DBPracticeActivity.class);
            startActivity(intent);
            break;
        }   
    }

    private void register() {
        String user = ((EditText)findViewById(R.id.editTextRegName)).getText().toString();
        String address = ((EditText)findViewById(R.id.editTextRegAddress)).getText().toString();
        String phone = ((EditText)findViewById(R.id.editTextRegPhone)).getText().toString();
        DatabaseHandler db = new DatabaseHandler(this);
        int id = db.addUser(new User(user,address,phone));
        db.close();
        if(id>0) {
            Toast toast = Toast.makeText(getApplicationContext(),
                    "User registered at id " + id,
                    Toast.LENGTH_SHORT);
            toast.show();
        }
        else {
            Toast toast = Toast.makeText(getApplicationContext(),
                    "User registration failed",
                    Toast.LENGTH_SHORT);
            toast.show();
        }
        ((EditText)findViewById(R.id.editTextRegName)).setText("");
        ((EditText)findViewById(R.id.editTextRegAddress)).setText("");
        ((EditText)findViewById(R.id.editTextRegPhone)).setText("");
    }

}

DatabaseHandler.java
package com.example.db;

import java.util.ArrayList;
import java.util.List;

import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;

public class DatabaseHandler extends SQLiteOpenHelper{
   
    // Database Version
    private static final int DATABASE_VERSION = 1;
    // Database Name
    private static final String DATABASE_NAME = "userDB";
    // Employee table name
    private static final String TABLE_USERS = "users";

    private static String USER_ID =  "user_id";
    private static String NAME = "name";
    private static String PHONE = "phone";
    private static String ADDRESS = "address";
   
    public DatabaseHandler(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
    }
   
    @Override
    public void onCreate(SQLiteDatabase db) {
        String CREATE_USER_TABLE = "CREATE TABLE " + TABLE_USERS + "("
                + USER_ID + " INTEGER PRIMARY KEY,"
                + NAME + " TEXT,"
                + PHONE + " TEXT,"
                + ADDRESS + " TEXT"
                + ")";
        db.execSQL(CREATE_USER_TABLE);
        //db.close();
       
    }

    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // Drop older table if existed
        db.execSQL("DROP TABLE IF EXISTS " + TABLE_USERS);
        // Create tables again
        onCreate(db);
       
    }
   
    // Adding new user
    public int addUser(User user)
    {
        SQLiteDatabase db = this.getWritableDatabase();
        ContentValues values = new ContentValues();
        values.put(NAME, user.getName());
        values.put(ADDRESS, user.getAddress());
        values.put(PHONE, user.getPhone());
        // Inserting Row
        int id = (int) db.insert(TABLE_USERS, null, values);
        db.close(); // Closing database connection
        return id;
    }
   
    //updating a existing user
    public int editUser(User user, String position) {
            SQLiteDatabase db = this.getWritableDatabase();
            ContentValues values = new ContentValues();
            values.put(NAME, user.getName());
            values.put(PHONE, user.getPhone());
            values.put(ADDRESS, user.getAddress());
            // updating row
            return db.update(TABLE_USERS, values, USER_ID + " = ?",
                    new String[] { String.valueOf(position) });
    }
   
    public User getUser(String id) {
        SQLiteDatabase db = this.getReadableDatabase();
        Cursor cursor = db.query(TABLE_USERS, new String[] { USER_ID,
                NAME, ADDRESS, PHONE }, USER_ID + "=?",
                new String[] {String.valueOf(id)}, null, null, null, null);
        if (cursor != null)
            cursor.moveToFirst();

        User user = new User(cursor.getString(1),
                cursor.getString(2), cursor.getString(3));
        db.close();
        // return user
        return user;
       
    }
   
        // LIst all users
        public String[] getAllUsers() {
            ArrayList<String> usersList = new ArrayList<String>();
            String selectQuery = "SELECT  * FROM " + TABLE_USERS;
            try {
                SQLiteDatabase db = this.getReadableDatabase();
                Cursor cursor = db.rawQuery(selectQuery, null);
                // looping through all rows and adding to list
                if (cursor.moveToFirst()) {
                    do {
                        String user = cursor.getString(1) + ", " + cursor.getString(2) +  ", " + cursor.getString(3);
                        usersList.add(user);
                    } while (cursor.moveToNext());
                }
   
                String[] users = new String[usersList.size()];
                db.close();
                return (usersList.toArray(users));
            }
            catch(Exception e) {
                Log.d("Error in getting users from DB", e.getMessage());
                return null;
            }
        }
       
}

User.java
package com.example.db;

public class User {
    public User() {
        super();
        // TODO Auto-generated constructor stub
    }
    private int userId;
    private String name;
    private String address;
    private String phone;
   
    public User(String name, String address, String phone) {
        super();
        this.name = name;
        this.address = address;
        this.phone = phone;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getAddress() {
        return address;
    }
    public void setAddress(String address) {
        this.address = address;
    }
    public String getPhone() {
        return phone;
    }
    public void setPhone(String phone) {
        this.phone = phone;
    }

}

Untuk Mengatasi Terjadi Force Close, Pada package src/AndroidManifest, buka AndroidManifest.xml pastikan kodenya seperti berikut
 
Setelah itu Run dengan shourcut CTRL+F11 atau klik Kanan package > Runa As > Android Projeck. Lihat Hasilnya Seperti Dibawah Ini

Silahkan Download Projectnya Disini DOWNLOAD    
luvne.com resepkuekeringku.com desainrumahnya.com yayasanbabysitterku.com