Memahami Jenis-jenis Fragment Khusus - PreferenceFragment

Menampilkan PreferenceFragment

App Android kita mungkin akan dilengkapi dengan preferensi yang mengijinkan user untuk mengubah personalisasi app kita sesuai dengan keinginan mereka. Misalnya, kita mengijinkan user untuk mengingat login yang mereka gunakan untuk mengakses web, atau untuk mengingat informasi misalnya seberapa sering feed rss harus di-refresh (seperti di dalam suatu app rss reader) dan sebagainya. Di Android, kita bisa menggunakan class ‘PreferenceActivity’ untuk menampilkan activity untuk user mengedit preferensi tersebut. Pada Android 3.0 ke atas, kita bisa menggunakan class ‘PreferenceFragment’ untuk melakukan hal yang sama.

Berikut adalah contoh latihan bagaimana membuat dan menggunakan fragment preference di Android.

1. Kita buat project beri yang kita beri nama “ContohPreferenceFragment”.

2. Kita buat folder baru dengan nama ‘xml’ di bawah folder ‘res’ dan kemudian kita buat file XML yang baru yang kita beri nama ‘preferences.xml’

3. Kita modifikasi dan tambahkan kode berikut pada file ‘preferences.xml’:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

<PreferenceCategory android:title="@string/category_title1">
<CheckBoxPreference
android:title="Checkbox"
android:defaultValue="false"
android:summary="True or False"
android:key="checkboxPref" />
</PreferenceCategory>

<PreferenceCategory android:title="@string/category_title2">
<EditTextPreference
android:name="EditText"
android:summary="Masukkan teks"
android:defaultValue="[Masukkan teks disini]"
android:title="Edit Text"
android:key="editTextPref" />

<EditTextPreference
android:name="Ringtone Preference"
android:summary="Pilih ringtone"
android:title="Ringtones"
android:key="ringtonePref" />

<PreferenceScreen
android:title="Layar Preference kedua"
android:summary="Klik disini untuk ke Layar Preference kedua"
android:key="secondPrefScreenPref" >
<EditTextPreference
android:name="EditText"
android:summary="Masukkan teks"
android:title="Edit Text (layar kedua)"
android:key="secondEditTextPref" />
</PreferenceScreen>
</PreferenceCategory>
</PreferenceScreen>
4. Kita buat file java baru yang kita beri nama “Fragment1.java” dan kita tambahkan kode seperti berikut:
package id.co.blogspot.diansano.contohpreferencefragment;

import android.os.Bundle;
import android.preference.PreferenceFragment;

public class Fragment1 extends PreferenceFragment {

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

/*ambil preferences dari file xml*/
addPreferencesFromResource(R.xml.preferences);
}
}
5. Kita modifikasi file “MainActivity.java” seperti berikut:
package id.co.blogspot.diansano.contohpreferencefragment;

import android.app.FragmentTransaction;
import android.app.FragmentManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Fragment1 fragment1 = new Fragment1();
fragmentTransaction.replace(android.R.id.content, fragment1);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();

}
}
6. Jalankan di emulator Android Studio seperti gambar berikut di bawah ini. Ketika kita klik pada EditText, pop up akan muncul. Dan bila kita klik pada ‘Layar Preference kedua’ maka layar preference kedua ditampilkan. Untuk menghilangkan fragment preference, cukup tekan tombol back di emulator.

Penjelasan

Untuk membuat daftar preferensi pada App Android kita, pertama kali kita perlu membuat file ‘preferences.xml’ dan mengisinya dengan berbagai macam elemen XML. File XML ini akan mendefinisikan berbagai macam item yang ingin kita simpan pada app kita.

Untuk membuat fragment preference, kta perlu melakukan ‘extends’ class ‘PreferenceFragment’:
public class Fragment1 extends PreferenceFragment {
}
Untuk mengambil file preference di dalam fragment preference, kita menggunakan method ‘addPreferenceFromresources()’ seperti berikut:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

/*ambil preferences dari file xml*/
addPreferencesFromResource(R.xml.preferences);
}
Untuk menampilkan frag,ent preference di dalam activity, kita bisa menggunakan class ‘FragmentManager’ dan class ‘FragmentTransaction’ seperti berikut:
FragmentManager fragmentManager = getFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
Fragment1 fragment1 = new Fragment1();
fragmentTransaction.replace(android.R.id.content, fragment1);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
Kita perlu menambahkan fragment preference ke tumpukan belakang (back stack) dengan menggunakan method ‘addToBackStack()’ sehingga user bisa menyingkirkan fragment tersebut dengan klik tombol ‘back’.

No comments: