Tugas Pekerjaan Rumah: Pelajaran 9 & 10 & 11

Daftar Isi:

9.1: Preferensi Bersama

Membangun dan menjalankan aplikasi

Buka aplikasi ScoreKeeper yang Anda buat dalam pelajaran Sumber Daya Dapat Digambar, Gaya, dan Tema.

  1. Ganti status instance yang tersimpan dengan preferensi bersama untuk setiap nilainya.
  2. Uji aplikasi:
    • Putar perangkat untuk memastikan bahwa perubahan konfigurasi membaca preferensi yang disimpan dan memperbarui antarmuka pengguna.
    • Hentikan aplikasi dan mulai ulang untuk memastikan bahwa preferensi sudah tersimpan.
  3. Tambahkan tombol Reset yang menyetel ulang nilai skor ke 0 dan mengosongkan preferensi bersama.

Jawablah pertanyaan berikut

Pertanyaan 1

Anda menyimpan status aplikasi ke preferensi bersama dalam metode daur hidup apa?

Pertanyaan 2

Anda memulihkan status aplikasi dalam metode daur hidup apa?

Pertanyaan 3

Bisakah Anda memikirkan sebuah kejadian saat memerlukan preferensi bersama dan status instance secara bersamaan?

Mengirimkan aplikasi Anda untuk dinilai

Panduan untuk penilai

Pastikan aplikasi memiliki beberapa fitur berikut:

  • Aplikasi mempertahankan skor saat rotasi.
  • Aplikasi mempertahankan skor setelah dihentikan dan dimulai ulang.
  • Aplikasi menyimpan nilai saat ini ke preferensi bersama dalam metode onPause().
  • Aplikasi mengembalikan preferensi bersama dalam metode onCreate().
  • Aplikasi menampilkan tombol Reset yang menyetel ulang skor ke 0.
  • Implementasi metode penangan on click untuk tombol reset:
    • Menyetel ulang kedua variabel skor ke 0.
    • Memperbarui kedua tampilan teks
    • Mengosongkan preferensi bersama.

9.2: Setelan Aplikasi

Membangun dan menjalankan aplikasi

Buka aplikasi DroidCafeWithSettings yang Anda buat dalam pelajaran Menambahkan Setelan ke Aplikasi.

  1. Tambahkan ListPreference (dialog dengan tombol radio) ke grup setelan "General". Masukkan ke dalam layout layar "General settings", di bawah ListPreference "Add friends to order messages".
  2. Edit larik string yang digunakan untuk ListPreference agar memasukkan judul ListPreference "Choose a delivery method." Gunakan pilihan pengiriman yang sama seperti yang digunakan dalam tombol radio di OrderActivity.
  3. Pastikan setelan Pengiriman yang dipilih pengguna ditampilkan dalam pesan toast yang sama dengan setelan Pasar dan Rekomendasi yang dipilih.
  4. Kredit tambahan: Menampilkan metode pengiriman yang dipilih sebagai setelan teks ringkasan yang muncul di bawah judul ListPreference. Aktifkan teks ini agar berubah bersama dengan setiap pembaruan. Setelan pengiriman pada layar setelan General

Jawablah pertanyaan berikut

Pertanyaan 1

Anda menetapkan larik masukan dan larik nilai untuk ListPreference pada file apa? Pilih salah satu:

  • pref_general.xml
  • strings.xml
  • menu_main.xml
  • content_main.xml

Pertanyaan 2

Anda menggunakan larik masukan dan larik nilai dalam menyiapkan ListPreference, dan menyetel kunci ListPreference serta nilai default pada file apa? Pilih salah satu:

  • pref_general.xml
  • strings.xml
  • menu_main.xml
  • SettingsActivity.java

Pertanyaan 3

Bagaimana Anda menyetel nilai default setelan saat aktivitas berjalan untuk pertama kalinya?

  • Menetapkan nilai default menggunakan atribut android:defaultValue untuk setiap preferensi setelan dalam file XML preferensi.
  • Menyetel nilai default dalam metode onCreate() untuk aktivitas menggunakan PreferenceManager.setDefaultValues().
  • Kedua hal di atas.

Pertanyaan 4

Untuk aplikasi yang mendukung Android 3.0 dan versi yang lebih baru, praktik terbaik setelan adalah menggunakan Aktivitas Setelan yang memperluas Aktivitas, dan fragmen untuk setiap file XML preferensi yang memperluas PreferenceFragment. Namun bagaimana cara agar aplikasi tetap kompatibel dengan pustaka dukungan v7 appcompat ketika memperluas sebuah Aktivitas dengan AppCompatActivity?

Pertanyaan 5

Ketika menggunakan antarmuka SharedPreferences untuk mengakses dan memodifikasi data preferensi seperti setelan, pernyataan berikut membaca preferensi setelan yang ditetapkan oleh kunci delivery:

String deliveryPref = sharedPref.getString("delivery", "1");
  • Benar atau salah? Argumen string "1" adalah nilai yang dikembalikan jika tidak ada preferensi setelan. Ini biasanya adalah string untuk nilai default setelan, yang dalam contoh ini bernilai "1".

Mengirimkan aplikasi Anda untuk dinilai

Panduan untuk penilai

Pastikan aplikasi memiliki beberapa fitur berikut:

  • Metode onCreate() membaca setelan deliveryPref menggunakan sharedPref.getString().
  • File pref_general.xml menyertakan ListPreference yang menggunakan entri larik dari pilihan pengiriman.
  • Kredit tambahan: Pernyataan bindPreferenceSummaryToValue(findPreference("delivery")) telah ditambahkan ke metode onCreate() dari kelas GeneralPreferenceFragment di SettingsActivity untuk menampilkan pilihan pengiriman dalam ringkasan preferensi.

10.1: Database SQLite

README: Pada grup tugas pekerjaan rumah berikutnya (10.1, 11.1, 11.2), Anda membuat 2 aplikasi. Mereka saling berhubungan satu sama lain dengan cara yang sama seperti aplikasi yang dibuat dalam praktik yang sama, seperti berikut:

  1. Aplikasi pertama, pada 10.1, adalah daftar TODO yang menggunakan database SQLite untuk menyimpan item. Aplikasi ini juga menyertakan cara untuk menambahkan, menampilkan, dan mengedit item. 10.1 arsitektur tingkat-tinggi pekerjaan rumah
  2. Pada 11.1, Anda memperluas aplikasi daftar TODO agar menggunakan penyedia materi untuk menyajikan data dari database SQLite ke antarmuka pengguna. 11.1 arsitektur tingkat-tinggi pekerjaan rumah
  3. Pada 11.2, Anda membuat aplikasi bernama ShowToDoItems yang mengakses daftar TODO penyedia materi dan memuat item to-do menggunakan loader. 11.2 arsitektur tingkat-tinggi pekerjaan rumah

Membangun dan menjalankan aplikasi yang menggunakan database SQLite

Membuat aplikasi bernama TODO dengan database SQLite, tempat pengguna bisa membuat dan mengedit item daftar to-do yang disimpan dalam database.

  1. Memperluas kelas SQLiteOpenHelper dengan mengimplementasikan metode query(), insert(), dan update().
  2. Mencakup fitur aplikasi yang dijelaskan dibawah ini.

Fitur:

  • Pengguna bisa menambahkan item baru ke dalam daftar.
  • Setiap item dalam database berisi tugas yang harus dilakukan, tanggal pembuatan dan tanggal selesai, dan apakah tugas telah selesai atau belum.
  • Ketika aplikasi dimulai, layar menampilkan daftar item to-do belum selesai yang diurutkan berdasarkan tanggal pembuatan.
  • UI berisi item menu Options untuk memulai aktivitas yang menunjukkan tugas yang selesai.
  • Pengguna bisa mengubah status selesai sebuah item. Ketika pengguna menandai tugas telah selesai, tugas diberi tanda selesai dan tanggal pembuatan diganti dengan tanggal selesai.
  • Ketika pengguna mengetuk item belum selesai, mode edit akan terpicu, dan pengguna bisa mengedit item tersebut.
  • Ketika aplikasi dimulai ulang, status terbaru item akan terlihat, yang menunjukkan bahwa data tersebut disimpan dan dimuat ulang.

Tip:

  • Salah satu cara untuk mengimplementasikan UI adalah dengan menggunakan RecyclerView yang memulai aktivitas edit ketika item diklik.
  • Anda tidak akan dinilai tentang cara Anda mengimplementasikan UI, atau bagaimana UI terlihat, selama UI memperlihatkan fungsionalitas tersebut.
  • Aplikasi yang menggunakan RecyclerView dan database SQLite mengikuti sebuah pola. Periksa dan gunakan kembali kode yang Anda tulis untuk pelajaran Database SQLite dan pelajaran Menelusuri Database SQLite.
  • Pastikan Anda dengan rapi memisahkan data dari antarmuka pengguna. Anda akan memperluas aplikasi to-do ini untuk menyelesaikan tugas pekerjaan rumah penyedia materi dan loader di masa mendatang.

Contoh layar untuk daftar item to-do dan layar edit

Jawablah pertanyaan berikut

Pertanyaan 1

Berapa banyak kode yang bisa Anda gunakan kembali dari aplikasi lain? Berapa banyak waktu yang bisa Anda hemat? Seberapa besar bantuan yang Anda dapat dengan menggunakan aplikasi lain sebagai contoh dalam menyusun aplikasi? Tidak ada jawaban benar atau salah.

Pertanyaan 2

Apa beberapa keuntungan menggunakan kelas SQLiteOpenHelper? Cek semua yang berlaku.

  • Menyediakan utilitas untuk menyederhanakan tugas-tugas pembuatan dan inisialisasi database.
  • Menyediakan metode onUpgrade(). Yang paling penting, jika peningkatan versi gagal dilakukan, metode ini melakukan rollback bagi Anda.
  • Menggunakan pola yang direkomendasikan akan mempermudah dalam memahami, memelihara, dan memperluas aplikasi.

Pertanyaan 3

Manakah dari pernyataan berikut yang menunjukkan keuntungan menggunakan database SQLite untuk menyimpan data Anda? Cek semua yang berlaku.

  • Menggunakan kueri SQL untuk mengambil data, memungkinkan Anda untuk mencocokkan pembatas dan ketentuan yang diberikan.
  • Data disimpan dengan persisten dan aman, dan bisa diambil dengan efisien.
  • Aplikasi lain bisa menggunakan data Anda.

Mengirimkan aplikasi Anda untuk dinilai

Panduan untuk penilai

Tidak ada jawaban benar atau salah untuk Pertanyaan 1. Sangatlah penting agar siswa memikirkan dan menyadari manfaat dari membangun karya mereka sendiri dan karya orang lain.

UI yang dipilih siswa bukanlah faktor untuk penilaian, selama aplikasi menunjukkan fungsionalitas database. Siswa memiliki banyak kebebasan dalam bagaimana mengimplementasikan fungsionalitas ini.

Pastikan aplikasi memiliki beberapa fitur berikut:

  • Menyertakan kelas SQLiteOpenHelper dengan mengimplementasikan metode query(), insert(), dan update() untuk mendukung fungsionalitas yang diperlukan.
  • Ketika aplikasi dimulai, layar menampilkan daftar item to-do yang diurutkan berdasarkan tanggal pembuatan.
  • Ketika pengguna berinteraksi dengan item, mode edit akan terpicu, dan pengguna bisa mengedit item tersebut.
  • Pengguna bisa mengubah status selesai sebuah item.
  • Menyertakan item menu Opsi yang memungkinkan pengguna untuk melihat item yang sudah selesai.
  • Ketika item berubah, UI menunjukkan perubahan.
  • Ketika aplikasi dimulai ulang, status terbaru item akan terlihat, yang menunjukkan bahwa data tersebut disimpan dan dimuat ulang.

11.1: Penyedia Materi

Memperluas aplikasi daftar TODO dari pekerjaan rumah 10.1 agar menggunakan penyedia materi.

  1. Menambahkan kelas Contract untuk konstanta biasa dan publik, URI, dan skema database.
  2. Menambahkan kelas ContentProvider yang menangani URI serta mengimplementasikan metode query(), insert(), dan update().
  3. Menambahkan penyedia materi ke file AndroidManifest.xml.

Fitur:

  • Dari perspektif pengguna, aplikasi harus memiliki fungsionalitas yang sama persis dengan aplikasi TODO yang dibuat untuk 10.1 tugas pekerjaan rumah.
  • Semua kueri masuk melalui penyedia materi, kemudian ke database SQLite.

Tip:

Jawablah pertanyaan berikut

Pertanyaan 1

Apa tujuan utama penyedia materi?

  • Memisahkan data dari antarmuka pengguna.
  • Menyediakan data untuk aplikasi lain.
  • Memisahkan back end dari antarmuka pengguna.

Pertanyaan 2

Apa beberapa keuntungan menggunakan kelas Contract?

  • Contract bisa bersifat publik sehingga aplikasi lain dapat mengetahui cara mengakses penyedia materi.
  • Anda hanya perlu mendefinisikan konstanta umum sekali.
  • Kelas ini mendefinisikan bagian dari aplikasi yang tidak bisa diubah.
  • Untuk aplikasi yang lebih besar dan kompleks, kumpulkan konstanta ke dalam sebuah tempat untuk mempermudah pemeliharaan.

Pertanyaan 3

Mengapa penyedia materi perlu dideklarasikan dalam Manifes Android?

  • Untuk memberi tahu Android Framework ID unik dari penyedia materi.
  • Untuk memastikan bahwa hanya ada satu penyedia materi untuk setiap aplikasi.
  • Untuk memberi tahu Kerangka Kerja Android propertinya, seperti izin bagi penyedia materi ini.

Mengirimkan aplikasi Anda untuk dinilai

Panduan untuk penilai

UI yang dipilih siswa bukanlah faktor untuk penilaian, selama itu menunjukkan fungsionalitas aplikasi.

Pastikan bahwa aplikasi mengimplementasikan hal berikut:

  • Menggunakan kelas Contract untuk URI dan konstanta lainnya.
  • Menyertakan kelas ContentProvider yang menangani URI dan mengimplementasikan metode query(), insert(), dan update() yang berinteraksi dengan database.
  • Aplikasi telah didesain sedemikian rupa sehingga aktivitas yang menggunakan metode query(), insert(), dan update() penyedia materi akan berinteraksi dengan database.
  • Ketika aplikasi dimulai ulang, status terbaru item akan terlihat, yang menunjukkan bahwa data tersebut disimpan dan dimuat ulang.

11.2: Loader

Membangun dan menjalankan aplikasi bernama ShowToDoItems yang menggunakan loader untuk mengambil dan menampilkan data dari penyedia materi yang Anda gunakan dalam aplikasi TODO dari pekerjaan rumah 11.1.

  1. Buat UI dasar untuk menampilkan item daftar TODO yang belum selesai.
  2. Implementasikan kelas Contract bagi konstanta untuk penyedia materi aplikasi TODO.
  3. Implementasikan LoaderManager.LoaderCallbacks<> untuk memuat data dari penyedia materi.
  4. Tambahkan pengelola loader untuk mengelola loader Anda.

Fitur:

  • Ketika aplikasi dimulai, layar menampilkan daftar item to-do yang diambil dari penyedia materi aplikasi TODO yang sedang berjalan.
  • Ketika data dalam database aplikasi TODO berubah, pembaruan juga dilakukan di aplikasi ShowToDoItems.

Tip:

  • Gunakan kembali elemen UI dari aplikasi sebelumnya.
  • Jangan lupa untuk menambahkan izin ke file manifes.
  • Jika Anda membutuhkan bantuan, lihat aplikasi WordListClient dan WordListLoader pada GitHub.

Jawablah pertanyaan berikut

Pertanyaan 1

Manakah dari pernyataan berikut yang menunjukkan keuntungan menggunakan loader?

  • Loader cepat.
  • Loader berjalan di thread terpisah untuk mencegah UI tidak responsif atau tersendat.
  • Loader menyederhanakan pengelolaan thread dengan menyediakan metode callback bila terjadi peristiwa.
  • Loader mempertahankan dan meng-cache hasil ketika konfigurasi berubah untuk mencegah duplikasi pertanyaan.
  • Loader bisa mengimplementasikan pengamat untuk memantau perubahan dalam sumber data dasarnya.

Pertanyaan 2

Pada saat membuat aplikasi ShowToDoItems, mengapa Anda tidak harus mengimplementasikan pengamat materi?

  • Pengelola loader menangani pengamatan data bagi Anda.
  • CursorLoader secara otomatis mendaftar ContentObserver untuk memicu muat ulang ketika data berubah.
  • Aplikasi daftar TODO mengirimkan data baru ke aplikasi ShowToDoItems bila item dalam database berubah.

Mengirimkan aplikasi Anda untuk dinilai

Panduan untuk penilai

UI yang dipilih siswa bukanlah faktor untuk penilaian, selama itu menunjukkan fungsionalitas aplikasi.

Pastikan aplikasi memiliki beberapa fitur berikut:

  • Menggunakan kelas Contract.
  • Mengimplementasikan LoaderManager.LoaderCallbacks<> dan menggunakan pengelola loader.
  • Ketika aplikasi dimulai, layar menampilkan daftar item to-do yang diambil dari penyedia materi aplikasi TODO yang sedang berjalan.
  • Ketika data dalam database aplikasi TODO berubah, pembaruan juga dilakukan di aplikasi ShowToDoItems.

results matching ""

    No results matching ""