Ringkasan Bab 6. Klik tombol
Catatan
Buku ini diterbitkan pada musim semi 2016, dan belum diperbarui sejak saat itu. Ada banyak dalam buku yang tetap berharga, tetapi beberapa materi sudah kedaluarsa, dan beberapa topik tidak lagi sepenuhnya benar atau lengkap.
Button
adalah tampilan yang memungkinkan pengguna untuk memulai perintah. Button
diidentifikasi oleh teks (dan secara opsional gambar seperti yang ditunjukkan dalam Bab 13, Bitmap). Akibatnya, Button
mendefinisikan banyak properti yang sama dengan Label
:
Button
juga mendefinisikan tiga properti yang mengatur tampilan perbatasannya, tetapi dukungan properti ini dan kemandirian bersama mereka adalah platform khusus:
BorderColor
dari jenisColor
BorderWidth
dari jenisDouble
BorderRadius
dari jenisDouble
Button
juga mewarisi semua properti dan VisualElement
View
, termasuk BackgroundColor
, , HorizontalOptions
dan VerticalOptions
.
Memproses klik
Kelas Button
mendefinisikan Clicked
peristiwa yang diaktifkan saat pengguna mengetuk Button
. Handler Click
berjenis EventHandler
. Argumen pertama adalah Button
objek yang menghasilkan peristiwa; argumen kedua adalah EventArgs
objek yang tidak menyediakan informasi tambahan.
Sampel ButtonLogger menunjukkan penanganan sederhana Clicked
.
Klik tombol berbagi
Beberapa Button
tampilan dapat berbagi handler yang sama Clicked
, tetapi handler umumnya perlu menentukan mana yang Button
bertanggung jawab atas peristiwa tertentu. Salah satu pendekatannya adalah menyimpan berbagai Button
objek sebagai bidang dan memeriksa mana yang menembakkan peristiwa di handler.
Sampel TwoButtons menunjukkan teknik ini. Program ini juga menunjukkan cara mengatur IsEnabled
properti ke Button
false
ketika menekan Button
tidak valid lagi. Dinonaktifkan Button
tidak menghasilkan Clicked
peristiwa.
Penanganan aktivitas anonim
Dimungkinkan untuk mendefinisikan Clicked
handler sebagai fungsi lambda anonim, seperti yang ditunjukkan oleh sampel ButtonLambdas. Namun, handler anonim tidak dapat dibagikan tanpa beberapa kode refleksi yang berantakan.
Membedakan tampilan dengan ID
Beberapa Button
objek juga dapat dibedakan dengan mengatur StyleId
properti atau AutomationId
properti ke string
. Properti ini didefinisikan oleh Element
tetapi tidak digunakan dalam Xamarin.Forms. Ini dimaksudkan untuk digunakan hanya oleh program aplikasi.
Sampel SimplestKeypad menggunakan penanganan aktivitas yang sama untuk semua 10 kunci angka pada keypad numerik dan membedakannya dengan StyleId
properti :
Menyimpan data sementara
Banyak aplikasi perlu menyimpan data ketika program dihentikan dan untuk memuat ulang data tersebut ketika program dimulai lagi. Kelas Application
menentukan beberapa anggota yang membantu program Anda menyimpan dan memulihkan data sementara:
- Properti
Properties
adalah kamus denganstring
kunci danobject
item. Konten kamus secara otomatis disimpan dalam penyimpanan lokal aplikasi sebelum penghentian program, dan dimuat ulang saat program dimulai. - Kelas
Application
mendefinisikan tiga metode virtual yang dilindungi yang diambil alih kelas standarApp
program:OnStart
, ,OnSleep
danOnResume
. Ini mengacu pada peristiwa siklus hidup aplikasi. - Metode ini
SavePropertiesAsync
menyimpan konten kamus.
Tidak perlu memanggil SavePropertiesAsync
. Isi kamus secara otomatis disimpan sebelum penghentian program dan diambil sebelum pengaktifan program. Ini berguna selama pengujian program untuk menyimpan data jika program mengalami crash.
Juga berguna adalah:
Application.Current
, properti statis yang mengembalikan objek saat iniApplication
yang kemudian dapat Anda gunakan untuk mendapatkanProperties
kamus.
Langkah pertama adalah mengidentifikasi semua variabel di halaman yang ingin Anda pertahankan saat program berakhir. Jika Anda mengetahui semua tempat di mana variabel tersebut berubah, Anda cukup menambahkannya ke Properties
kamus pada saat itu. Di konstruktor halaman, Anda dapat mengatur variabel dari Properties
kamus jika kunci ada.
Program yang lebih besar mungkin perlu berurusan dengan peristiwa siklus hidup aplikasi. Yang paling penting adalah metode .OnSleep
Panggilan ke metode ini menunjukkan bahwa program telah meninggalkan latar depan. Mungkin pengguna telah menekan tombol Beranda pada perangkat, atau menampilkan semua aplikasi, atau mematikan telepon. Panggilan ke OnSleep
adalah satu-satunya pemberitahuan yang diterima program sebelum dihentikan. Program harus mengambil kesempatan ini untuk memastikan bahwa Properties
kamus sudah diperbarui.
Panggilan untuk OnResume
menunjukkan bahwa program tidak berhenti mengikuti panggilan terakhir ke OnSleep
tetapi sekarang berjalan di latar depan lagi. Program mungkin menggunakan kesempatan ini untuk menyegarkan sambungan internet (misalnya).
Panggilan ke OnStart
terjadi selama pengaktifan program. Tidak perlu menunggu sampai metode ini memanggil untuk mengakses Properties
kamus karena konten telah dipulihkan ketika App
konstruktor dipanggil.
Sampel PersistentKeypad sangat mirip dengan SimplestKeypad kecuali bahwa program menggunakan OnSleep
penimpaan untuk menyimpan entri keypad saat ini, dan konstruktor halaman untuk memulihkan data tersebut.
Catatan
Pendekatan lain untuk menyimpan pengaturan program disediakan oleh Xamarin.Essentialskelas Preferensi .