Pre Requisites
- Membuat QRCode Scanner sederhana pada Android bag. pertama
 
The Code
Aplikasi ini akan mempunyai dua buah Activity Class, yaitu MainActivity dan QRScanner Activity. MainActivity hanya berisi nama program dan sebuah tombol, sedangkan QRScanner-lah yang melakukan proses pemindaian QRCode.Pertama-tama kita akan membuat dahulu layout untuk MainActivity, yang bernama MainActivity.xml. Beginilah kodenya :
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
 |     android:layout_width="match_parent"    android:layout_height="match_parent"    tools:context=".MainActivity"    android:background="@drawable/background"    >    <TextView        android:id="@+id/labelText"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_centerHorizontal="true"        android:layout_marginTop="185dp"        android:text="QR Code Scanner"        android:textSize="25sp"        android:textColor="#0044ff"        />    <TextView        android:id="@+id/labelCopy"        android:layout_centerHorizontal="true"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:layout_below="@id/labelText"        android:text="by : twoh.web.id"        android:textSize="15sp"        android:textColor="#444444"        />    <Button        android:id="@+id/buttonStart"        android:layout_centerHorizontal="true"        android:layout_below="@id/labelCopy"        android:layout_width="wrap_content"        android:layout_height="wrap_content"        android:text="mulai"        /></RelativeLayout> | 
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
 | package id.web.twoh.qrproject;import android.os.Bundle;import android.app.Activity;import android.content.Intent;import android.view.Menu;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;public class MainActivity extends Activity implements OnClickListener{    Button startButton;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        startButton = (Button) findViewById(R.id.buttonStart);        startButton.setOnClickListener(this);    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        getMenuInflater().inflate(R.menu.activity_main, menu);        return true;    }    @Override    public void onClick(View v) {        switch(v.getId())        {            case R.id.buttonStart : Intent i = new Intent(this, QRScanner.class);                                    startActivity(i);        }    }} | 
Buatlah file baru bernama QRScanner.java dan copy paste kan kode berikut :
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
36 
37 
38 
39 
40 
41 
42 
43 
44 
45 
46 
47 
48 
49 
50 
51 
52 
53 
54 
55 
56 
57 
58 
59 
60 
61 
62 
63 
64 
65 
66 
67 
68 
69 
70 
71 
 | package id.web.twoh.qrproject;import android.app.Activity;import android.app.AlertDialog;import android.content.DialogInterface;import android.content.DialogInterface.OnClickListener;import android.content.Intent;import android.os.Bundle;import android.view.Window;import com.example.BarcodeTest.IntentIntegrator;import com.example.BarcodeTest.IntentResult;public class QRScanner extends Activity {    /** Called when the activity is first created. */    private String upc;    @Override    public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        //jendela tanpa title        this.requestWindowFeature(Window.FEATURE_NO_TITLE);        //memulai pemindaian QRCode        IntentIntegrator.initiateScan(this);    }    // cek hasil dari QRCode    protected void onActivityResult(int requestCode, int resultCode, Intent data) {        switch(requestCode) {            case IntentIntegrator.REQUEST_CODE: {                if (resultCode != RESULT_CANCELED) {                    IntentResult scanResult = IntentIntegrator.parseActivityResult(requestCode, resultCode, data);                    // apabila ada hasil dari pemindaian                    if (scanResult != null) {                        // ambil isi dari QRCode                        upc = scanResult.getContents();                        //  tampilkan pada Alert Dialog                        final AlertDialog.Builder builder=new AlertDialog.Builder(QRScanner.this);                        builder.setTitle("Hasil Scan");                        builder.setMessage(upc+"\n");                        builder.setIcon(android.R.drawable.ic_dialog_alert);                        // Tombol untuk simpan data                        builder.setPositiveButton("Simpan", new OnClickListener() {                            @Override                            public void onClick(DialogInterface dialog, int which) {                                    // Buat simpan ke database atau ke mana                                    // doSomething();                                    QRScanner.this.finish();                                    IntentIntegrator.initiateScan(QRScanner.this);                            }                        });                        // Tombol untuk coba lagi/keluar                        builder.setNegativeButton("Coba Lagi", new OnClickListener() {                            @Override                            public void onClick(DialogInterface dialog, int which) {                                // TODO Auto-generated method stub                                QRScanner.this.finish();                                IntentIntegrator.initiateScan(QRScanner.this);                            }                        });                        // tampilkan alert box                        builder.show();                    }            break;                }            }        }    }} | 
Yang terakhir adalah file AndroidManifest.xml, jangan lupa untuk mendaftarkan QRScanner sebagai Activity baru, kodenya sebagai berikut :
1 
2 
3 
4 
5 
6 
7 
8 
9 
10 
11 
12 
13 
14 
15 
16 
17 
18 
19 
20 
21 
22 
23 
24 
25 
26 
27 
28 
29 
30 
31 
32 
33 
34 
35 
 | <?xml version="1.0" encoding="utf-8"?>    package="id.web.twoh.qrproject"    android:versionCode="1"    android:versionName="1.0" >    <uses-sdk        android:minSdkVersion="8"        android:targetSdkVersion="8" />    <application        android:allowBackup="true"        android:icon="@drawable/ic_launcher"        android:label="@string/app_name"        android:theme="@style/AppTheme" >        <activity            android:name="id.web.twoh.qrproject.MainActivity"            android:label="@string/app_name"            android:theme="@android:style/Theme.NoTitleBar"            >            <intent-filter>                <action android:name="android.intent.action.MAIN" />                <category android:name="android.intent.category.LAUNCHER" />            </intent-filter>        </activity>        <activity            android:name="id.web.twoh.qrproject.QRScanner"            android:label="@string/app_name"            android:theme="@android:style/Theme.NoTitleBar"            >        </activity>    </application></manifest> | 
Demo Aplikasi
Langsung saja untuk demo aplikasinya :Tampilan apabila aplikasi dibuka, klik tombol, maka akan masuk ke bagian pemindaian QR Code. Ini adalah tampilan aplikasi ketika ada data QRCode yang berhasil ditangkap.
Dan aplikasi otomatis akan menampilkan alert dialog apabila telah selesai mendeteksi QR Code.
Menampilkan data scan menggunakan Alert DialogSeperti biasa, tinggalkan komentar apabila masih ada yang kurang dimengerti







1 comments:
kalau ingin menampilkan hasil scan tsb ke dalam edittext/textview dalam layout xml bagaimana gan ?
ReplyPost a Comment