Video: Cara Membuka Aplikasi Lain dari Aplikasi Kita ( Launch Other Apps Programmatically ) 2024
Antarmuka pengguna di contoh aplikasi Android yang digunakan di sini memiliki tiga panel - daftar item, panel detail yang menjelaskan item mana yang dipilih dalam daftar, dan panel rincian-dalam-lebih-mendalam. Pada layar smartphone kecil, masing-masing panel mungkin merupakan aktivitas terpisah. Tapi layar tablet dalam mode landscape memiliki ruang untuk lebih dari satu panel.
Gambar di bawah menunjukkan aplikasi ini dengan dua dari tiga panel. Panel di sebelah kiri menampilkan daftar komponen Android SDK. Panel di sebelah kanan menampilkan deskripsi komponen apa saja yang dipilih dalam daftar di sebelah kiri. (Uraian sebenarnya adalah beberapa kalimat pertama dari dokumentasi SDK komponen.) Pola detail-on-the-right ini adalah bagian dari banyak antarmuka pengguna.
Untuk membuat tampilan, Anda membangun satu aktivitas. Aktivitasnya memiliki dua fragmen - fragmen di sebelah kiri dan satu lagi di sebelah kanan. Panel kiri menampilkan fragmen yang sama sepanjang menjalankan aplikasi, sehingga Anda dapat mendeklarasikan fragmen itu dalam file tata letak aktivitas. Panel kanan menampilkan satu fragmen sekaligus, namun fragmennya berubah selama aplikasi dijalankan. Jadi Anda mendeklarasikan layout bingkai di panel kanan.
Pada kode di atas, android: layout_ atribut apa saja membagi layar menjadi dua bagian - satu setengah untuk elemen fragmen dan separuh lainnya untuk elemen FrameLayout. Strategi dengan atribut ini adalah memulai dengan menetapkan minimal nol piksel untuk setiap elemen. Tentu saja, nol piksel berarti tidak lebar sama sekali (yang sama dengan tidak terlihat). Untuk menjaga kedua bagian tata letak agar tidak terlihat, berikan nilai tata letak yang sama dengan nol ke dua bagian. Dengan nilai nol nol, masing-masing setengah mengembang untuk mengisi ruang yang tersedia dalam tata letak.
Penggunaan nama kelas yang memenuhi syarat fragmen (com. Allmycode. Frag. ComponentNamesFragment) disengaja. Nama yang disingkat (seperti. ComponentNamesFragment) tidak akan memotong mustard.
Jika Anda bertanya-tanya, detail built-in AndroidElementBackground menyediakan tampilan yang seragam untuk hal-hal seperti bagian kanan (hal-hal yang menampilkan detail tentang item yang telah dipilih pengguna).
Kode aktivitas utama aplikasi sangat tidak menarik.
paket com allmycode frag; impor android aplikasi. Aktivitas; impor android os. Bundel; kelas publik AllPurposeActivity memperluas Aktivitas {@Override protected void onCreate (Bundle savedInstanceState) {super. onCreate (savedInstanceState); setContentView (R.tata letak. main);}}
Kode di bawah ini berisi kelas ComponentNamesFragment. Berdasarkan tata letak pada contoh pertama, Android menanam ComponentNamesFragment di sisi kiri layar perangkat.
paket com allmycode frag; impor android aplikasi. FragmentManager; impor android aplikasi. FragmenTransaksi; impor android aplikasi. ListFragment; impor android os. Bundel; impor android melihat. Melihat; impor android widget. ArrayAdapter; impor android widget. ListView; public class ComponentNamesFragment meluas ListFragment {final static String [] KOMPONEN = {"Aktivitas", "Layanan", "BroadcastReceiver", "ContentProvider"}; @Override public void onActivityCreated (Bundle savedInstanceState) {super. onActivityCreated (savedInstanceState); setListAdapter (new ArrayAdapter (getActivity (), android R. layout. simple_list_item_1, COMPONENTS));} @Override public void onListItemClick (ListView l, Lihat v, int index, long id) {// Buat fragmen dengan indeks DocsFragment docsFragment = DocsFragment baru (); Bundel args = pembantu. getBundleWithIndex (indeks); docsFragment setArguments (args); // Kosongkan tumpukan fragmenManager fragmentManager = getFragmentManager (); int backStackEntryCount = fragmentManager. getBackStackEntryCount (); untuk (int i = 0; iKelas di kode di atas meluas kelas ListFragment Android. ListFragment adalah fragmen yang menampilkan daftar. Pada awal siklus hidup fragmen, kode pada contoh di atas membuat adaptor daftar (lebih khusus lagi, sebuah ArrayAdapter) untuk fragmen tersebut. Jadi, seberapa awal "awal"?
Parameter pertama konstruktor ArrayAdapter adalah konteksnya. Tapi tunggu! Tidak seperti aktivitas, fragmen bukanlah sebuah konteks. Jadi Anda tidak dapat menggunakan kata kunci ini untuk parameter pertama konstruktor ArrayAdapter.
Untungnya, fragmen memiliki metode getActivity. Sebuah panggilan untuk mendapatkanAktivitas meraih aktivitas yang fragmennya terpasang. Jadi, untuk parameter pertama konstruktor ArrayAdapter, Anda bisa menghubungi getActivity. Tentu saja, Anda tidak bisa menghubungi getActivity sampai fragmen itu melekat pada aktivitas yang ada. Itu sebabnya metode fragmen onActivityCreated ditimpa di atas. Panggilan Android onActivityCreated setelah melampirkan fragmen dan memanggil metode onCreate aktivitas. Jadi semuanya berjalan sesuai rencana.
android. aplikasi. Kelas grand-kelas kelas kegiatan adalah android. konten. Konteks. Tapi android. aplikasi. Kelas induk kelas fragment adalah java tua polos. lang. Obyek. Oleh karena itu, dalam kode aktivitas, kata kunci ini mengacu pada konteks. Tapi dalam kode fragmen, kata kunci ini tidak mengacu pada konteks.
Pada contoh di atas, konstruktor untuk ArrayAdapter memiliki tiga parameter.
Parameter pertama adalah konteks - parameter buruk yang memaksa Anda menempatkan konstruktor di dalam metode onActivityCreated.
Parameter kedua adalah simple_list_item_1 - tata letak Android standar.
Tata letak simple_list_item_ 1 menciptakan tampilan yang Anda lihat di sisi kiri gambar. Android memiliki banyak layout standar ini. Untuk rangkaian tata letak yang tersedia, kunjungi situs Pengembang Android.
Parameter ketiga adalah kumpulan item yang akan muncul dalam daftar.
Dalam contoh ini, item tersebut berasal dari array COMPONENTS, yang dideklarasikan dalam contoh yang sama.
Seperti ListActivity, sebuah ListFragment memiliki metode onListItemClick. Anda dapat merespons klik dengan bekerja dengan DocsFragment, FragmentTransaction, dan FragmentManager:
The DocsFragment mewakili sisi kanan gambar di atas.
Transaksi fragmen adalah sekumpulan hal yang Anda lakukan dengan fragmen. Misalnya, pengaturan untuk mengganti satu fragmen dengan yang lain adalah transaksi.
Seorang manajer fragmen melakukan apa namanya. Ini mengelola kedatangan dan keberangkatan fragmen.