Dalam aplikasi Android, bagaimana Anda memulai aktivitas baru (GUI) ketika tombol di aktivitas lain diklik, dan bagaimana Anda mengirimkan data di antara dua aktivitas ini?
627
Dalam aplikasi Android, bagaimana Anda memulai aktivitas baru (GUI) ketika tombol di aktivitas lain diklik, dan bagaimana Anda mengirimkan data di antara dua aktivitas ini?
Mudah.
Intent myIntent = new Intent(CurrentActivity.this, NextActivity.class);
myIntent.putExtra("key", value); //Optional parameters
CurrentActivity.this.startActivity(myIntent);
Ekstra diambil di sisi lain melalui:
@Override
protected void onCreate(Bundle savedInstanceState) {
Intent intent = getIntent();
String value = intent.getStringExtra("key"); //if it's a string you stored.
}
Jangan lupa menambahkan aktivitas baru Anda di AndroidManifest.xml:
<activity android:label="@string/app_name" android:name="NextActivity"/>
CurrentActivity.this.startActivity(myIntent)
danstartActivity(myIntent)
?Buat maksud untuk aktivitas ViewPerson dan berikan PersonID (untuk pencarian basis data, misalnya).
Kemudian di Aktivitas ViewPerson, Anda bisa mendapatkan bundel data tambahan, pastikan itu bukan nol (kalau-kalau Anda terkadang tidak meneruskan data), maka dapatkan datanya.
Sekarang jika Anda perlu berbagi data antara dua Kegiatan, Anda juga dapat memiliki Global Singleton.
Kemudian menyebutnya dalam aktivitas apa pun dengan:
sumber
Respons saat ini sangat bagus tetapi jawaban yang lebih komprehensif diperlukan untuk pemula. Ada 3 cara berbeda untuk memulai aktivitas baru di Android, dan semuanya menggunakan
Intent
kelas; Maksud | Pengembang Android .onClick
atribut Button. (Pemula)OnClickListener()
melalui kelas anonim. (Menengah)switch
pernyataan. (Pro)Inilah tautan ke contoh saya jika Anda ingin mengikuti:
1. Menggunakan
onClick
atribut Button. (Pemula)Tombol memiliki
onClick
atribut yang ditemukan dalam file .xml:Di kelas Java:
Keuntungan : Mudah dibuat dengan cepat, modular, dan dapat dengan mudah mengatur beberapa
onClick
s dengan maksud yang sama.Kerugian : Sulit dibaca saat meninjau.
2. Menugaskan sebuah
OnClickListener()
melalui kelas anonim. (Menengah)Ini adalah ketika Anda menetapkan terpisah
setOnClickListener()
untuk masingbutton
- masing dan menimpa masingonClick()
- masing dengan niatnya sendiri.Di kelas Java:
Keuntungan : Mudah dibuat dengan cepat.
Kerugian : Akan ada banyak kelas anonim yang akan membuat keterbacaan sulit saat ditinjau.
3. Metode aktivitas antarmuka luas menggunakan
switch
pernyataan. (Pro)Ini adalah ketika Anda menggunakan
switch
pernyataan untuk tombol Anda dalamonClick()
metode untuk mengelola semua tombol Aktivitas.Di kelas Java:
Keuntungan : Manajemen tombol mudah karena semua maksud tombol terdaftar dalam satu
onClick()
metodeUntuk bagian kedua dari pertanyaan, mengirim data, silakan lihat Bagaimana cara mengirimkan data antara Aktivitas di aplikasi Android?
sumber
Ketika pengguna mengklik tombol, langsung di dalam XML seperti itu:
Dengan menggunakan atribut
android:onClick
kami menyatakan nama metode yang harus ada pada aktivitas induk. Jadi saya harus membuat metode ini di dalam aktivitas kami seperti itu:sumber
sumber
sumber
Emmanuel,
Saya pikir info tambahan harus dimasukkan sebelum memulai aktivitas jika tidak, data belum akan tersedia jika Anda mengaksesnya di metode onCreate dari NextActivity.
sumber
Dari Aktivitas pengiriman coba kode berikut
Dari Aktivitas penerima coba kode berikut:
Kemudian tambahkan saja kode berikut ke file AndroidManifest.xml
sumber
sumber
Coba metode sederhana ini.
sumber
Anda dapat mencoba kode ini:
sumber
Cara untuk memulai aktivitas baru adalah menyiarkan maksud, dan ada jenis niat tertentu yang dapat Anda gunakan untuk meneruskan data dari satu aktivitas ke aktivitas lainnya. Rekomendasi saya adalah Anda memeriksa dokumen pengembang Android yang terkait dengan maksud ; itu adalah banyak info tentang subjek, dan memiliki contoh juga.
sumber
Kotlin
Aktivitas pertama
Aktivitas kedua
Saran
Selalu masukkan kunci dalam file konstan untuk cara yang lebih terkelola.
sumber
Memulai aktivitas dari aktivitas lain adalah skenario yang sangat umum di antara aplikasi android.
Untuk memulai suatu aktivitas Anda memerlukan Intent objek .
Bagaimana cara membuat Objek Intent?
Objek niat mengambil dua parameter dalam konstruktornya
Jadi misalnya, jika Anda memiliki dua aktivitas, katakan
HomeActivity
danDetailActivity
dan Anda ingin mulaiDetailActivity
dariHomeActivity
(HomeActivity -> DetailActivity).Berikut ini cuplikan kode yang menunjukkan cara memulai DetailActivity dari
Dan kamu sudah selesai.
sumber
Mulai aktivitas lain dari aktivitas ini dan Anda dapat mengirimkan parameter melalui Bundle Object juga.
Retrive data dalam aktivitas lain (YourActivity)
sumber
Terapkan antarmuka View.OnClickListener dan timpa metode onClick.
sumber
Meskipun jawaban yang tepat telah diberikan tetapi saya di sini untuk mencari jawaban dalam bahasa Kotlin. Pertanyaan ini bukan tentang bahasa tertentu jadi saya menambahkan kode untuk menyelesaikan tugas ini dalam bahasa Kotlin.
Inilah cara Anda melakukan ini di Kotlin untuk andorid
sumber
Cara paling sederhana untuk membuka aktivitas dengan mengklik tombol adalah:
onclick
berfungsi.MainActivity.java
SecondActivity.java
AndroidManifest.xml (Cukup tambahkan blok kode ini ke yang sudah ada)
sumber
Ambil Tombol di xml terlebih dahulu.
Jadikan daftar tombol.
sumber
Ketika tombol diklik:
Untuk menerima data tambahan dari
NextActivity.class
:sumber
Tulis kode dalam aktivitas pertama Anda.
Di secondActivity.class
sumber
Tempatkan widget tombol di xml seperti di bawah ini
Setelah itu inisialisasi dan tangani pendengar klik pada Kegiatan seperti di bawah ini ..
Dalam metode Activity On Create:
sumber