Advertisement
  1. Code
  2. Android SDK
Code

Bagaimana Cara Menetapkan Kod Skrin di Aplikasi Android

by
Difficulty:BeginnerLength:LongLanguages:

Malay (Melayu) translation by Fatimah (you can also view the original English article)

Final product image
What You'll Be Creating

Bahan reka bentuk di Google memberikan definisi yang jelas tentang apa yang perlu dilakukan dalam aplikasi Android anda: 

Aplikasi tetapan membolehkan pengguna menunjukkan pilihan tentang bagaimana aplikasi perlu berjalan. 

Mereka di Google juga menyatakan bahawa pengguna anda harus menavigasi ke aplikasi tetapan dari menu navigasi menu atau menu toolbar-dengan item yang berlabel Pengaturan .

Termasuk tetapan di aplikasi memberikan pengguna keupayaan untuk mengawal beberapa fungsi aplikasi anda. Hal ini membuat pengguna senang dan tidak marah-kerana mereka kini mengendalikan bagaimana penerapannya.

Ini sangat disarankan untuk memberi akses kepada aplikasi tetapan. Ini akan memberikan pengalaman pengguna yang lebih baik bagi pengguna anda, yang membawa kepada ulasan yang lebih baik di Google Play Store, yang kemudian menghasilkan jumlah aplikasi unduhan yang lebih tinggi (yang meningkatkan pendapatan).

Saya menganggap bahawa anda perlu berinteraksi dengan aplikasi tetapan pada peranti anda, contohnya dengan memilih default ringtone, atau dengan mengontrol privasi Anda di aplikasi. Hampir semua apl terpopuler yang telah anda unduh atau yang akan dimuat di Google Play Store menyertakan tetapan skrin untuk mengawal aplikasi aplikasinya.

Contoh aplikasi popular yang mempunyai tetapan skrin adalah aplikasi Android Chrome dari Google. Di skrin aplikasi ini, pengguna boleh memilih lalai telusur mesin, mengubah pemberitahuan behavior, mengawal pengguna privasi, dll.  Anda boleh melihatnya sendiri dengan memuat turun aplikasi Chrome dari Google Play Store (jika anda belum memilikinya di peranti). Tangkapan skrin berikut berasal dari aplikasi Chrome, memaparkan aplikasi tetapan skrin.

Screenshot of Chrome app settings screen

Di bawah ini, anda akan belajar membuat aplikasi tetapan skrin dari awal dan juga cara membaca nilai yang telah dipilih pengguna dari aplikasi tetapan. Untuk tambahan bonus, Anda juga akan belajar cara menggunakan template ciri Android Studio untuk bootstrap cepat projek Anda dengan pengaturan layar. 

Sampel projek (di Kotlin) untuk tutorial ini dapat ditemui di repo kami GitHub sehingga Anda dapat dengan mudah mengikuti. 

Prasyarat 

Untuk dapat mengikuti tutorial ini, Anda memerlukan:

  • Pemahaman dasar beberapa API Android (seperti SharedPreferences
  • Android Studio 3.0 atau lebih tinggi 
  • Kotlin plugin 1.1.51 atau lebih tinggi 

1. Buat Projek Android Studio 

Jalankan Android Studio dan buat projek baru (Anda dapat menamainya SettingsScreenDemo ) dengan aktivitas kosong yang disebut SettingsActivity . Pastikan juga cek Sertakan kotak semak sokongan Kotlin .

Android Studio create project screen

2. Membuat PreferenceFragment 

Untuk menyokong API Level 11 (Honeycomb) dan di atas, kita boleh menggunakan PreferenceFragment . Kelas ini hanyalah Fragment yang menunjukkan hierarki objek Preference sebagai senarai.

Pada kod di atas, kami membuat SettingFragment kelas bersarang di dalam SettingsActivity (kerana kelas SetttingsFragment sangat kecil). Harap maklum bahawa kami menetapkan PengaturanFragment kelas ke atas PreferenceFragment superclass dan mempunyai method addPrerenceFromResource di dalam onCreate() . Di dalam kaedah ini, kami memberikan pilihan XML R.xml.preference ID Rujukan untuk dilancarkan-saat Fragment dimuat. Akhirnya  Di dalam kaedah ini, kami memberikan pilihan XML R.xml.preference ID Rujukan untuk dilancarkan-saat Fragment dimuat. Akhirnya, kami mengehoskan Fragmen ke aktiviti dengan hanya menggunakan FragmentTransaction untuk menambahnya ke UI-dalam onCreate() SettingsActivity .

3. Membuat Keutamaan Kita 

Buat fail XML dan beri nama preferences.xml . Simpan fail ini dalam direktori res / xml di aplikasi aplikasi anda.  Perhatikan bahawa anda boleh memberi nama fail ini, tetapi sangat disarankan untuk tetap menggunakan konvensional nama 'preferensi'. Di samping itu, anda biasanya hanya mempunyai satu fail dalam aplikasi projek.

Nod akar untuk pilihan preferences.xml kami harus menjadi elemen . Di dalam akar unsur ini, sekarang kita mempunyai Preference individu kami. Berikut adalah ciri umum yang berkaitan dengan Preference :

  • android:key : this attribute digunakan untuk mendapatkan nilai pada SharedPreferences objek. 
  • android:title : menetapkan android:title untuk Preference . Ini adalah teks tebal. 
  • android:summary : set summary untuk Preference (ini tidak diperlukan). Ini adalah teks pudar di bawah tajuk. 
  • android:defaultValue : menetapkan default nilai untuk Preference .

Kami akan membahas setiap Preference yang telah kami definisikan di atas dengan segera. Perhatikan bahawa anda juga boleh menambah atau menyesuaikan Preference melalui preferensi editor Android Studio - sama dengan susunan sumber editor yang sudah dikenal.  Anda boleh memilih untuk menambah / mengedit pilihan XML file anda secara langsung dalam 'Teks' mode atau menggunakan drag dan drop UI pada 'Design' mode.

Android Studio preference editor

Seperti yang boleh anda lihat, di editor ini, anda boleh menarik dan melepaskan Preference di bahagian palet (di sebelah kiri).  Setelah turun, anda perlu memilihnya dan memodifikasi atributnya di editor atribut panel (sebelah kanan). Perhatikan bahawa secara lalai, kami diberi beberapa atribut untuk dimodifikasi.  Untuk melihat atau memodifikasi semua attribut yang berkaitan dengan Preference yang dipilih, pastikan anda mengklik pautan Lihat semua atribut di bahagian bawah atribut panel. Ini sangat mirip dengan susun atur editor yang sudah anda kenal.

Sekarang, mari kita melalui masing-masing Entitas Preference yang kita miliki. 

Pilihan Kotak Cek .

CheckBoxPreference hanyalah widget Checkbox yang disertakan dalam preferensi layar. Preference ini mengembalikan nilai 'benar' jika dicentang atau 'palsu' sebaliknya. Dengan kata lain, ia mengembalikan boolean tergantung pada keadaan widget

CheckBoxPreferense

Lain-lain yang boleh anda tambah ke CheckBoxPreference ialah:

  •  android:summaryOff : menetapkan ringkasan untuk Preference di layar preferensi ketika tidak dicentang. 
  • android:summaryOn : menetapkan ringkasan untuk Preference di skrin preferensi ketika dicentang. android:disableDependentsState : State (berlaku untuk on, atau false to off) yang menyebabkan tanggungan dimatikan. Mungkin nilai boolean, seperti 'benar' atau 'palsu'.
  • android:disableDependentsState : State (berlaku untuk on, atau false to off) yang menyebabkan tanggungan dimatikan. Mungkin nilai boolean, seperti 'benar' atau 'palsu'.

Tukar Keutamaan 

SwitchPreference melakukan fungsi serupa dengan CheckBoxPreference . Ini menyediakan pilihan dua negeri ('on' atau 'off') yang boleh diganti. Ini menggunakan widget Switch yang membolehkan pengguna meluncur ke kiri ('off') dan kanan ('on').  Preference ini juga termasuk atribut yang dijelaskan untuk CheckBoxPreference di atas. Selain itu, ia mempunyai ciri-ciri berikut: 

  • android:switchTextOff : tetapkan teks yang digunakan pada suis sendiri ketika berada dalam status 'off'. 
  • android:switchTextOn : tetapkan teks yang digunakan pada suis sendiri ketika berada di status 'on'.
SwitchPreference

Preferensi EditTeks 

Preference ini, ketika diklik, menunjukkan dialog agar pengguna memasukkan input teks. Ini menggunakan widget EditText termasuk semua widget attribute yang sudah dikenal.

Perhatikan bahawa nilai yang disimpan dalam SharedPreferences adalah rentetan.

EditTextPreference

Senarai Keutamaan

 Jenis Preference ini akan memaparkan senarai catatan dalam dialog saat terkadang. Di sini, anda boleh menentukan sepasang strata array sumber dalam pilihan XML  anda. Sumber array-string ini hanya mengandungi string kumpulan. Sumber daya ini terletak pada res/values/arrays.xml .

Berikut adalah contoh kami ListPreference menggunakan sumber ini.

Kami menetapkan entri dan nilai entri menggunakan entri android:entries dan android:entryValues masing-masing.

  •  android:entries : array yang boleh dibaca manusia untuk dipaparkan sebagai daftar.
  •  android:entryValues : array untuk mencari nilai yang akan disimpan untuk preferensi ketika entri dari entri yang dipilih.
ListPreference dialog when clicked

Sebagai contoh, jika kita menggunakan jumlah minit dalam setiap tempoh sebagai nilai masuk, apabila pengguna memilih tempoh masa (contohnya 30 minit), nilai integer yang sesuai akan disimpan dalam SharedPreferences ( SharedPreferences 30).

Pilihan Senarai MultiSelect

Yang ini ListPreference dengan ListPreference tetapi tidak mempunyai radio tombol, kami mempunyai kotak cek. Dengan kata lain, pengguna boleh memilih beberapa item dalam dialog.  Perhatikan bahawa hasilnya disimpan dalam 'string string' dalam SharedPreferences . Ini boleh diambil dengan menggunakan getStringSet() .

Pilihan Nada Dering 

Semasa RingtonePreference diketuk, dialog yang dipaparkan mengandungi senarai nada dering yang tersedia pada peranti atau emulator.

  • android:showDefault : apakah pilihan nada dering lalai akan dipaparkan.
  •  android:showSilent : apakah pilihan Silent akan dipaparkan dalam daftar. Pengguna boleh memilih pilihan ini jika mereka tidak mahu memutar sebarang nada dering.
RingtonePreference

Perhatikan bahawa nilai yang disimpan dalam SharedPreferences untuk pilihan ini adalah rentetan khusus. Ini khusus tali adalah URI yang mengarah ke ContentProvider

4. Membuat Menetapkan Kumpulan 

Ini menjadi masalah apabila anda mempunyai pilihan persediaan atau pengaturan yang panjang, karena pengguna mungkin mengalami masalah dalam pemindaian atau pemahaman mereka.  Untuk mengatasi masalah ini, kita dapat mengelompokkan keutamaan kita. Lihatlah ikon aplikasi Chrome skrin yang saya tunjukkan di awal lagi-perhatikan bahawa ini membahagikan pilihan menjadi dua kategori: Asas dan Lanjutan .  Hal ini memudahkan pengguna memahami persepsi dan tidak membuat senarai sepertinya terlalu berlebihan.

 Sekarang mari kita lihat betapa sederhananya melakukan tugas ini.

Kami hanya mengelilingi pilihan yang ingin kami masukkan dalam satu tag <preferenceCategory>dan beri masing-masing judul kumpulan dengan menggunakan attribute android:title .

Preferences grouped with PreferenceCategory

5. Memulai Intent 

Perhatikan bahawa mungkin membuka aktiviti hanya dengan mengklik item preferensi dari pengaturan layar. Ini boleh berguna apabila anda ingin membuka halaman web. Inilah kod untuk melakukan itu:

Di sini, kami menambah elemen intent   di dalam elemen .

  • android:action : set action for Intent (ini mirip dengan memanggil setAction() pada object Intent).
  • android:targetClass : menetapkan bahagian kelas dari nama komponen (sama seperti memanggil setComponent() pada objek Intent).
  • android:targetPackage bahagian paket dari nama komponen. 
  • android:data : mengatur data untuk ditetapkan (sama seperti memanggil setData() pada objek Niat).

Untuk membuka halaman web, untuk contoh, anda boleh menggunakan yang berikut:

6. Mengikat Ringkasan Preferensi dengan Nilai yang Dipilih 

Sekarang mari kita lihat bagaimana cara memperbaharui preferensi ringkasan dengan nilai yang dipilih oleh pengguna.

Di kelas ini, kami membuat kaedah pembantu yang disebut bindPreferenceSummaryToValue() , yang berada di dalam objek pengiring kami, untuk memperbaharui preferensi ringkasan teks dengan nilai yang telah dipilih oleh pengguna.  Kami melewatinya Preference objek sebagai argumen. findPreference() akan mengembalikan Preference dengan menggunakan Preference tombol.

Kami mempunyai sBindPreferenceSummaryToValueListener yang merupakan contoh dari Preference.OnPreferenceChangeListener .  Ini hanya pendengar perubahan pilihan yang akan membantu kami memperbaharui preferensi ringkasan dengan nilai pengguna yang dipilih. Kami memeriksa kes-kes tertentu, seperti ketika pilihan yang dipilih adalah RingtonePreference atau ListPreference . Untuk jenis preferensi itu, kami melakukan beberapa penanganan khusus untuk mendapatkan ringkasan string. Jika preferensi tidak (seperti EditTextPreference ), kami hanya mengatur ringkasan ke nilai rentetan pilihan. Untuk jenis preferensi itu, kami melakukan beberapa penanganan khusus untuk mendapatkan ringkasan string. Jika preferensi tidak (seperti EditTextPreference ), kami hanya mengatur ringkasan ke nilai rentetan pilihan.

Di dalam bindPreferenceSummaryToValue() , kami bindPreferenceSummaryToValue() pendengar perubahan pilihan dengan memanggil onPreferenceChangeListener (di Java, itu setOnPreferenceChangeListener sebagai gantinya) pada objek Preference .

Kini jalankan lagi projek untuk melihat bagaimana semuanya berjalan!

Settings screen showing changed summary in response to selection

7. Mengambil Nilai Preferensi 

Untuk memulakan mendapatkan nilai pilihan untuk tetapan skrin, kita memanggil getDefaultSharedPreference() yang ada di dalam PreferenceManager kelas melewatinya Context object dari preferensi yang dikehendaki nilai. Perhatikan bahawa kami mendapat nilai dari default SharedPreferences untuk aplikasi kami.

Anda memanggil kaedah pengambil yang sesuai untuk jenis yang ingin kami ambil nilai dari dalam SharedPreferences . Anda melewatinya sebagai argumen pertama, dan nilai defaultnya adalah kedua argumen.

8. Bonus: Menggunakan Templat Android Studio 

Kini setelah anda mengetahui mengenai API yang terlibat untuk membuat tetapan skrin dari awal di Android, saya akan menunjukkan pintasan yang akan membuatnya lebih cepat lagi. Anda boleh memilih untuk menggunakan templat daripada mengkodekan tetapan skrin dari awal. 

Android Studio menyediakan kod template yang mengikuti reka bentuk dan pengembangan terbaik Android praktik.  Kod templat yang ada ini (tersedia di Java dan Kotlin) dapat membantu Anda memulai proyek anda dengan cepat. Salah satu templat tersebut boleh digunakan untuk membuat pengaturan skrin.

 Untuk menggunakan ciri praktis ini untuk projek baru, mulailah menjalankan Android Studio.

Android Studios Create Android Project dialog

Masukkan nama aplikasi dan klik butang Next . Anda boleh meninggalkan lalai seperti pada Peranti Sasaran Android Sasaran

Klik butang Next lagi.

Android studios Add an Activity to Mobile dialog

Dalam dialog Tambah Aktiviti ke Mudah Alih , tatal ke bawah dan pilih Aktiviti Tetapan . Klik butang Seterusnya selepas itu.

Android Studios Configure Activity dialog

Pada dialog terakhir, Anda boleh mengganti nama Nama aktiviti, nama atau susun atur judul jika anda mau. Akhirnya, klik butang Selesai untuk menerima semua konfigurasi. 

Android Studio kini telah membantu kami membuat projek dengan menetapkan aktiviti. Benar-benar keren! Anda sangat disarankan untuk mengeksplorasi kod yang dihasilkan. 

Anda juga boleh menggunakan template untuk projek Studio Android yang sudah ada. Cukup masuk ke Fail> Baru> Aktiviti> Aktiviti Tetapan .

Navigation flow to creating a new settings activity in Android Studio

Perhatikan bahawa templat yang disertakan dengan Android Studio adalah baik untuk susun atur yang sederhana dan membuat dasar aplikasi, namun jika anda ingin benar-benar memulai aplikasi, Anda mungkin mempertimbangkan beberapa aplikasi templat yang tersedia dari Envato Market . 

Mereka menghemat waktu untuk pemaju berpengalaman, membantu mereka memotong seluk beluk aplikasi pembuatan dari nol dan memfokuskan minat mereka alih-alih di bagian yang unik dan disesuaikan untuk membuat aplikasi baru.

Kesimpulan

Dalam tutorial ini, anda belajar bagaimana membuat tetapan aplikasi di Android dari awal. Kami juga menjelajah cara mudah dan cepat menggunakan Android Studio templat untuk membuat aplikasi tetapan. 

Saya amat mengesyorkan untuk menyemak rasmi bahan panduan panduan untuk tetapan untuk mengetahui lebih lanjut mengenai cara membuat dan menggunakan tetapan di Android dengan betul. Juga, lihat panduan API rasmi untuk mempelajari lebih lanjut mengenai API lain untuk membuat pengaturan aktiviti.

Untuk mempelajari lebih lanjut tentang pengkodean untuk Android, lihat beberapa lagi kursus dan tutorial kami di sini di Envato Tuts +!


Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.