Showing posts with label android. Show all posts
Showing posts with label android. Show all posts

Tuesday, 9 June 2015

Android - Apa itu .this dan .class

Di dalam Android terdapat kode-kode yang keliahatan nya 'aneh'. Salah kode yang aneh adalah .this dan .class. Di sini saya akan menjelaskan apa itu .this dan .class. Kita sering melihat .class dan .this ketika kita ingin pindah halaman. Kita sering melihat kode yang seperti ini :
1
2
3
Intent i = new Intent(MainActivity.this, SecondView.class);
startActivity(i);
finish();
Di sini saya akan menjelaskan .this dan .class dengan memberi contoh.
Coba run contoh dari .this dan .class yang dibuat di bawah ini :
MainActivity.java
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
public class MainActivity extends Activity {
    TextView text1, text2, text3;
    String namaKelas1, namaKelas2, suatuKata;
    KelasContoh kelasContoh;
     
    public void onCreate(Bundle b) {
        super.onCreate(b);<br>                setContentView(R.layout.activity_main);
        text1 = (TextView) findViewById(R.id.textView1);
        text2 = (TextView) findViewById(R.id.textView2);
        text3 = (TextView) findViewById(R.id.textView3);   
        kelasContoh = new KelasContoh();
        kelasContoh.kegiatan1();
        namaKelas1 = kelasContoh.kegiatan2(MainActivity.class);
        namaKelas2 = kelasContoh.kegiatan2(MainActivity.class.getSuperclass());
        text2.setText(namaKelas1);
        text3.setText(namaKelas2);
    }
     
    public void menampilkanKata(String a) {
        text1.setText(a);
    }
    class KelasContoh {
         
        public void kegiatan1() {
          MainActivity.this.menampilkanKata("berhasil memakai method MainActivity");
        }
         
        public String kegiatan2(Class<?> noNameClass) {
            return "Nama kelas : " + noNameClass.getName();
        }
         
        public void kegiatan3() {
             
        }
         
    }
     
}
activity_main.xml
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
<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="andika.app.MainActivity" >
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="24dp"
        android:text="Large Text" />
    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignRight="@+id/textView1"
        android:layout_below="@+id/textView1"
        android:layout_marginTop="48dp"
        android:text="Large Text" />
    <TextView
        android:id="@+id/textView3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView2"
        android:layout_below="@+id/textView2"
        android:layout_marginTop="48dp"
        android:text="Large Text"
        />
</RelativeLayout>

Coba run code nya...

1. .this
Pengertian .this hampir sama dengan this. Kenapa bisa ada .this ? .this sering digunakan ketika kita membuat inner class. Dari source code yang ada di atas MainActivity.this adalah objek dari class MainActivity lalu memanggil method menampilkanKata yang ada di dalam class MainActivity.
1
2
3
public void menampilkanKata(String a) {
      text1.setText(a);
}
1
2
public void kegiatan1() {
         MainActivity.this.menampilkanKata("berhasil memakai method MainActivity");<br>}
2. .class
.class artinya objek class dari suatu class. MainActivity.class adalah objek class dari class MainActivity. Jika kita mengeprint nama class nya yang dilakukan pada kegiatan2 maka terbukti bahwa MainActivity.class adalah class MainActivity.
Di dalam onCreate :
1
2
3
namaKelas1 = kelasContoh.kegiatan2(MainActivity.class);<br>namaKelas2 = kelasContoh.kegiatan2(MainActivity.class.getSuperclass());
text2.setText(namaKelas1);
text3.setText(namaKelas2);
Di dalam class KelasContoh :
1
2
3
public String kegiatan2(Class<?> noNameClass) {
    return "Nama kelas : " + noNameClass.getName();
}

Referensi : 
http://docs.oracle.com/javase/specs/jls/se8/jls8.pdf

Pengenalan Android Programming

Saya adalah penghuni baru di situs ini. Dan masih nubi pastinya.. hehehee
Sekarang saya mencoba untuk membuat tutorial tentang Pemrograman Android. Sebenarnya artikel ini merupakan penulisan ulang dari blog saya, tapi ada beberapa hal yang diedit dan disesuaikan dengan situs ini. Oke, daripada banyak basa-basi, langsung aja kita ke TKP *ehh*. Tapi sebelum masuk ke dasar pemrogramannya, ada baiknya dibahas dulu apa sih Android itu?
Android adalah sebuah sistem operasi yang berjalan di perangkat mobile (smartphone) yang dikembangkan oleh sebuah perusahaan dengan nama Android Inc. Pada tahun 2005, Android Inc dibeli oleh Google Inc. Oleh sebab itu, sekarang Android dikembangkan oleh Google. Versi Android yang telah beredar adalah sebagai berikut:
  • Android Versi 1.1
  • Android Versi 1.5 (Cupcake)
  • Android Versi 1.6 (Donut)
  • Android Versi 2.1 (Eclair)
  • Android Versi 2.2 (Froyo)
  • Android Versi 2.3 (GingerBread)
  • Android Versi 3.0 (HoneyComb)
  • Android Versi 4.0 (Ice Cream Sandwich)
  • Android Versi 5.0 (JellyBean)
Ada sebuah keunikan dari versi-versi tersebut. Pertama, Android selalu menggunakan nama dari hidangan penutup untuk menamakan setiap versinya. Kedua, versi Android selalu berurutan secara Abjad. Selain keunikan tadi, Android juga memiliki keunggulan dari sistem operasi untuk SmartPhone lainnya, yaitu bersifat Open Source. Dan vendor yang menggunakan Android OS juga terbilang cukup banyak, sebut saja HTC, Sony Ericsson dan pastinya yang merajai pasar smartphone saat ini yaitu Samsung.
Ada beberapa perlengkapan yang harus dipersiapkan untuk memulai pemrograman Android. Pertama adalah Java JDK. Kenapa membutuhkan Java JDK? Karena memang Android dikembangkan dengan menggunakan bahasa pemrograman Java, hanya ada beberapa package tambahan untuk pemrograman Android. Kedua, pastinya Android SDK dan kita harus mendownload package Android yang akan kita gunakan nantinya. Berikutnya adalah text editor, disini saya menggunakan Eclipse sebagai teks editornya.
Ketika semua sudah di-install, maka kita harus meng-install plug-in Android di dalam Eclipse. Caranya:
  1. Pilih menu Help pada Eclipse
  2. Kemudian pilih Install New Software, maka akan tampil jendela baru
  3. Pilih Add, dan akan muncul jendela Add Repository.
  4. Isi field Name dengan Android (atau apa saja)
  5. Isi Field Location dengan https://dl-ssl.google.com/android/eclipse/
  6. Restart Eclipse
  7. Pilih Menu Window
  8. Lalu pilih References
  9. Isikan Field Location dengan alamat Android SDK yang ter-install di komputer, klik OK.
  10. Pilih Menu Window, kemudian pilih Android SDK dan AVD Manager
  11. Pilih virtual devices lalu klik new.
  12. Isikan field Name dengan Android
  13. Isikan target dengan package atau platform Android yang kita mau (misalkan 1.6).
 Jika semuanya telah dilakukan dengan benar maka siap untuk melakukan pemrogram Android. Di bawah ini akan diberikan contoh yang sangat sederhana dalam membuat aplikasi Android. Aplikasi tersebut akan menampilkan tulisan "Hello Droid" sebagai pengenalan. Let's try ...

  1. Pertama jalankan Eclipse, kemudian pilih menu File --> New --> Project.
  2. Pilih Android --> Android Project --> Next
  3. Isikan field project Name dengan HelloDroid (boleh diganti, tapi tidak boleh ada spasi)
  4. Isikan field Package Name dengan com.example.hello (boleh diganti namun ikuti aturan penulisan package / sama seperti pada Java)
  5. Isikan Create Activity dengan HelloDroid (boleh diganti tetap tanpa spasi)
  6. Pilih Build Target yang diinginkan (misal 1.6)
  7. Klik Finish
Setelah pembuatan project baru selesai, maka siap untuk menulis kode sumber (source code) Android. Caranya:
  1. Expand Project HelloDroid --> src --> com.example.hello --> HelloDroid.java (sesuaikan dengan yang Anda buat)
  2. Ganti penulisan code dengan code seperti di bawah ini:
1
2
3
4
5
6
7
8
9
10
11
package com.example.hellodroid;
public class HelloWorld extends Activity {
/** @override: Dijalankan otomatis ketika activity ini dipanggil */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
TextView tv=new TextView(this);
tv.setText("Hello, Droid!");
setContentView(tv);
}
}
Kemudia save dengan menekan tombol CTRL + S pada keyboard, kemudian pilih menu Run --> Run --> Android Application untuk menjalankannya. Maka akan muncul emulator Android dan dalam beberapa detik akan muncul aplikasi yang telah di-build yang menampilkan tulisan Hello, Dorid!

Sekian tutorial dari saya, semoga bermanfaat. Dan saya mohon maaf jika terdapat kesalah pada tutorial ini.

Membuat Spash Screen

Tutorial ini sangat simple ,
pasti udah tau kan Splash Screen , semacam kaya Loading gitu lah
  • Buat Project File ⇒ New ⇒ SplashScreen dan Beri nama Activity  splash_activity.
  • Copy'kan gambar di drawable-mdpi yang mau jadi background saat Splash Screen
  • Buka splash_activity.xml dan ikuti Code di bawah ini : 
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
<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"
    android:background="@drawable/zx"
    tools:context=".Splash" >
 
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginTop="44dp"
        android:text="Mohon tunggu Sebentar . . . " />
 
    <ProgressBar
        android:id="@+id/progressBar1"
        style="?android:attr/progressBarStyleLarge"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignLeft="@+id/textView1"
        android:layout_alignParentBottom="true"
        android:layout_marginBottom="102dp"
        android:layout_marginLeft="17dp" />
 
</RelativeLayout>
  • Buka Splash.java yang berada pada src->com.example.splashscreen dan ikuti code di bawah ini 
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
package com.example.splashscreen;
 
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
 
public class Splash extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.splash_activity);
        final int welcomeScreenDisplay = 3000;
        Thread welcomeThread = new Thread() {
 
            int wait = 0;
 
            @Override
            public void run() {
                try {
                    super.run();
                    while (wait < welcomeScreenDisplay) {
                        sleep(100);
                        wait += 100;
                    }
                } catch (Exception e) {
                    System.out.println("EXc=" + e);
                } finally {
                    startActivity(new Intent(Splash.this,Tampil.class));
                    finish();
                }
            }
        };
        welcomeThread.start();
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
}
1
  
  • selanjut'nya kita buat lagi XML dengan nama tampilan.xml dan isi code seperti ini 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/RelativeLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#cee"
    android:orientation="vertical" >
 
    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_centerVertical="true"
        android:text="Sukses"
        android:textAppearance="?android:attr/textAppearanceLarge" />
 
</RelativeLayout>
1
 selanjut'nya kita buat Class baru dengan nama <strong>Tampil.java </strong>dan beri code seperti di bawah ini :
1
2
3
4
5
6
7
8
9
10
11
package com.example.splashscreen;
 
import android.app.Activity;
import android.os.Bundle;
 
public class Tampil extends Activity{
    protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tampilan);
    }
}
  • dan selesai , coba di run
  • maaf bila tutorial ini berantakan , soal'nya baru pertama kali buat tutorial di sini ^^"
  • bila masi ada error coba di tanyain di sini , thx 

Membuat preferensi atau pengaturan pada aplikasi android


Sempat bertanya - tanya pada diri ini "Bagiamana sih membuat pengaturan pada aplikasi android layaknya pengaturan pada sistem android yang kayak gini nih.
sistem-android-preferensi
Pernah nyoba" bikin layout sendiri eh malah hasilnya berantakan. Akhirnya saya coba googling" dan ketemu dah yang aku cari . Ternyata tidak sesulit yang saya pikirkan. Ada cara sendiri untuk membuatnya dan itupun sangat mudah. Tidak sulit bagi yang masih baru menerjuni dunia android. Beginilah caranya :
    • Buat project baru dan beri nama preferences.
    • Kemudian masuk ke folder res dan buat  folder  xml. Disini kita buat file xml baru beri nama preferences.xml.
    • Buka preferences.xml dan salin kode dibawah ini :
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      13
      14
      15
      <?xml version="1.0" encoding="utf-8"?>
      <PreferenceScreen
          <PreferenceCategory android:title="Network">
              <CheckBoxPreference
                  android:key="status"
                 android:title="Status"
                  />
              <EditTextPreference
                  android:key="ipaddress"
                  android:title="Network"
                  android:dialogTitle="Enter Values" />
          </PreferenceCategory>
          
      </PreferenceScreen>
    • Kemudian buka folder res => layout gantikan activity_main.xml dengan 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
      <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" >
       
          <TextView
              android:id="@+id/textView1"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignParentLeft="true"
              android:layout_alignParentTop="true"
              android:layout_marginTop="23dp"
              android:text="Status" />
       
          <TextView
              android:id="@+id/textView2"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignParentLeft="true"
              android:layout_below="@+id/textView1"
              android:layout_marginTop="28dp"
              android:text="Large Text"
              android:textAppearance="?android:attr/textAppearanceLarge" />
       
          <TextView
              android:id="@+id/textView3"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignLeft="@+id/textView2"
              android:layout_below="@+id/textView2"
              android:layout_marginTop="33dp"
              android:text="IP Address" />
       
          <TextView
              android:id="@+id/textView4"
              android:layout_width="wrap_content"
              android:layout_height="wrap_content"
              android:layout_alignLeft="@+id/textView3"
              android:layout_below="@+id/textView3"
              android:layout_marginTop="42dp"
              android:text="Large Text"
              android:textAppearance="?android:attr/textAppearanceLarge" />
       
      </RelativeLayout>
    • Kemudian buat activity baru dengan nama PreferencesActivity.java dan salin kode dibawah ini :
      1
      2
      3
      4
      5
      6
      7
      8
      9
      10
      11
      12
      package com.example.preferences;
       
      import android.os.Bundle;
      import android.preference.PreferenceActivity;
       
      public class PreferencesActivity extends PreferenceActivity {
          @SuppressWarnings("deprecation")
          public void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              super.addPreferencesFromResource(R.xml.preferences);
          }
      }
    • Kemudian rubah MainActivity.java dengan kode dibawah ini :
      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
      package com.example.preferences;
      import android.os.Bundle;
      import android.preference.PreferenceManager;
      import android.app.Activity;
      import android.content.Intent;
      import android.content.SharedPreferences;
      import android.view.Menu;
      import android.view.MenuItem;
      import android.widget.TextView;
       
      public class MainActivity extends Activity {
          SharedPreferences sharedPreferences;
          TextView textView2,textView4;
          @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
              setContentView(R.layout.activity_main);
              sharedPreferences = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);//mengambil data konfigurasi dari aplikasi
              String ipaddress = sharedPreferences.getString("ipaddress", "");//mengambil data konfigurasi dari aplikasi
              boolean status = sharedPreferences.getBoolean("status", false);//mengambil data konfigurasi dari aplikasi
              textView2 = (TextView)findViewById(R.id.textView2);
              textView4 = (TextView)findViewById(R.id.textView4);
              //menampilkan data pada textview
               
              textView2.setText(String.valueOf(status));
              textView4.setText(ipaddress);
          }
       
          @Override
          public boolean onCreateOptionsMenu(Menu menu) {
              // Inflate the menu; this adds items to the action bar if it is present.
              getMenuInflater().inflate(R.menu.main, menu);
              return true;
          }
           
          public boolean onOptionsItemSelected(MenuItem item) {
              // TODO Auto-generated method stub
              switch (item.getItemId()) {
              case R.id.action_settings:
                  startActivity(new Intent(MainActivity.this,
                           PreferencesActivity.class));
                break;
              }
              return true;
          }
      }
    • Kemudian rubah android manifest.xml nya seperti dibawah ini.
      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
      <?xml version="1.0" encoding="utf-8"?>
          package="com.example.preferences"
          android:versionCode="1"
          android:versionName="1.0" >
       
          <uses-sdk
              android:minSdkVersion="8"
              android:targetSdkVersion="18" />
       
          <application
              android:allowBackup="true"
              android:icon="@drawable/ic_launcher"
              android:label="@string/app_name"
              android:theme="@style/AppTheme" >
              <activity
                  android:name="com.example.preferences.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>
              <activity android:name="PreferencesActivity"></activity>
          </application>
       
      </manifest>
    • Kemudian jalankan aplikasi dan lihat hasilnya. Tekan tombol menu kemudian pilih setting dan atur aplikasinya. Setelah diatur coba keluar dari aplikasi dan masuk pada aplikasi tersebut lihatlah perubahanya. Berikut saya sertakan gambar gambarnya.

layout-preferensi-aplikasiopsi-preferensihasil-preferensi