Tuesday, 9 June 2015

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

No comments:

Post a Comment