Bagikan melalui


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:

Button juga mewarisi semua properti dan VisualElementView, termasuk BackgroundColor, , HorizontalOptionsdan 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 Buttonfalse 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 :

Cuplikan layar tiga dari keypad paling sederhana

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 dengan string kunci dan object 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 standar App program: OnStart, , OnSleepdan OnResume. 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 ini Application yang kemudian dapat Anda gunakan untuk mendapatkan Properties 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 .