PERTEMUAN 5 KELOMPOK 2.

Slides:



Advertisements
Presentasi serupa
3 – Activity and Intent Willy, M.Kom.
Advertisements

Pemrograman Berbasis Obyek
Try, Catch, Finally Throws
Struktur Project Android
Mobile Programming Pertemuan 3 Presented by Mulyono
Mobile Programming Intro Android.
UI Controls dengan Widget TextView, EditText dan Button
High Level User Interface
Inheritance dan Kata Kunci static
Pengelolaan Database Lanjutan
Pertemuan 5 Tipe Data, Operator, Tata Bahasa
Content Provider pada Android
Tipe Data, Variabel, dan Operator
Pemrograman Bergerak Pembuatan Service 1.
Struktur Class Java Android
Pemrograman Perangkat Mobile
Pengelolaan Database Lanjutan 2
As’ad Djamalilleil Struktur Android As’ad Djamalilleil
As’ad Djamalilleil Intent As’ad Djamalilleil
Tipe Data, Variabel, dan Operator
Pemrograman Bergerak Pembuatan Activity 1.
Mekanisme penyimpan data pada Android
ANDROID ACTIVITY.
Komponen GUI Menambahkan Komponen.
Mobile computing – Android Activity dan Intent
Content Provider pada Android
Pemrograman Perangkat Mobile
DISKUSI PERTEMUAN 3 Pemrograman mobile 2 Ti 15 D
Pertemuan 3 : Komponen Aplikasi Android
PEMROGRAMAN MOBILE Kelompok 2
Diskusi Pertemuan 4 Anggota : Kukuh Prasetyo Adhi ( ) Warsito Aji ( ) Karima Dewi R ( ) Alfano Kurniawan W ( ) Bagus.
P E R T E M U A N 5 FRAGMENT.
PEMROGRAMAN MOBILE 2 Nama Anggota : Moh.Solahudin ( )
PEMROGRAMAN MOBILE 2 Nama Anggota : Kelompok 1 Rizky Aditya
KELOMPOK 1 : PEMROGRAMAN MOBILE PERTEMUAN KE 3
Pemrograman Mobile Kelompok Nur Dwi Ramadani
PEMROGRAMAN MOBILE Kelompok 2
Anggota Kelompok: 1. Rinta Setyo Nugroho 2. Anan Ar Rozzaq
PEMROGRAMAN MOBILE 2 KELOMPOK 7 TI 15 D.
PEMROGRAMAN MOBILE 2 Dina Murniati Putri (NIM )
Notification, Dialog, dan Intent
PEMROGRAMAN MOBILE Kelompok 2
FRAGMENT KELOMPOK 3 Abdurahman Agung Edi W Eko Prasetyo Fahrul Rosi
FRAGMENT Pemrograman Mobile 2 Disusun Oleh :
Kelompok 3 Khoerul Umam Dwi Yulianto K.W
Pemrograman Mobile Kelompok Pertemuan 5.
Pengenalan Pemrograman Mobile PART 5 - FRAGMEN.
KELOMPOK 6 Ragil Setiawan Muhamad Ma’ruf Siti Roudhotul Janah
Kelompok 3 Khoerul Umam Dwi Yulianto K.W
Fragment Nama anggota : Andian Ramadhan
FRAGMENT Nama anggota :
Dilla Alfianur Kumalasari 0238
9 Mobile Computing 2 SKS Dedy Alamsyah, S.Kom..
PEMROGRAMAN MOBILE Kelompok 2
PENGENALAN Pemrograman MOBILE 2
PMO Pertemuan Ke 5 Fragment
Klompok 2 Dedi wahyudi ( ) Muhammad ichan ( )
ANDROID LOCATION BASED SERVICE
Mobile Programming Intent dan Activity.
Mobile Programming Folder Resources (Res) dan tata kelolanya
Tipe Data, Variabel, dan Operator
PEMROGRAMAN MOBILE PERTEMUAN KE-5
Mobile Computing Fery Updi, M.Kom..
Arif Risqiantoro Dadang wahyu utomo Isnan aditia
FRAGMENT PEMROGRAMAN MOBILE 2.
Pemrograman Perangkat bergerak Dosen: RBD
Pemrograman Berorientasi Objek
Pemrograman Perangkat bergerak Dosen: RBD
PEMROGRAMAN MOBILE 1 RPS 8
Komponen activity Dosen: Maimun, S.T., M.T.. 1. Activity Kegiatan apa yang akan ditampilkan dan dilakukan user pada sebuah window Berisi lifecycle / daur.
Transcript presentasi:

PERTEMUAN 5 KELOMPOK 2

ANGGOTA : Ikmam Nur Fauzi (15.11.0016) Bagas Pratikto (15.11.0019) Suprayitno (15.11.0032) Yusuf Budiaji (15.11.0037) Upit Liana Sari (15.11.0042) Edi Susanto (15.11.0046) Adimas Dwi Nur H. (15.11.0062)

PEMBAHASAN FRAGMENT MEMBUAT FRAGMENT MENAMBAHKAN FRAGMENT PADA ACTIVITY MEMBUAT UI FLEXIBLE DENGAN FRAGMENT KOMUNIKASI ANTAR FRAGMENT

FREGMENT Fragment adalah salah satu komponen antar muka (user interface ) yang merupakan sebuah bagian dari Activity, dapat disebut juga dengan nama Sub- Activity. Satu Activity bisa mengelola beberapa fragment .untuk menampilkan hasil di layar user (pengguna). Dalam Satu Activity juga ,sebuah fragment dapat diganti,ditambahkan dan dihapus,sesuai kebutuhan. Fragment dipengaruhi dari lifecycle (siklus hidup ) Activity , karna Fragment termasuk bagian dari Activity.

CONTOH PENGGUNAAN FRAGMENT Pada aplikasi berita dapat menggunakan satu fragmen untuk menampilkan daftar artikel di sebelah kiri dan fragmen lainnya untuk menampilkan artikel di sebelah kanan—kedua fragmen ini muncul di satu aktivitas, berdampingan, dan masing- masing fragmen memiliki serangkaian metode callback daur hidup dan menangani kejadian masukan penggunanya sendiri. Sehingga, sebagai ganti menggunakan satu aktivitas untuk memilih artikel dan aktivitas lainnya untuk membaca artikel, pengguna bisa memilih artikel dan membaca semuanya dalam aktivitas yang sama, sebagaimana diilustrasikan dalam layout tablet pada gambar di bawah ini.

MEMBUAT FRAGMENT kali ini kita akan coba membuat contoh penerapan dari Fragment Android. Sebelum memulai kalian harus tahu 12 method dari fragment berikut : onAttach(Activity)  :  digunakan untuk memanggil 1 kali ketika menempel di Activity. onCreate(Bundle)   : digunakan untuk mempersiapkan fragment. onCreateView(LayoutInflater, ViewGroup, Bundle)  : menciptakan dan menampilkan kembali secara hirarki. onActivityCreated(Bundle) : method ini dipanggil setelah method onCreate(). onViewStateRestored(Bundle) : digunakan untuk menyatakan informasi  kepada fragment bahwa semua akan disimpak ke dalam state (layar) dari tampilan fragment secara hirarki yang telah dipulihkan. onStart() : digunakan untuk membuat fragment terlihat.

onResume() : digunakan untuk membuat fragment interaktif. onPause()  : digunakan jika fragment tidak lagi interaktif. onStop()  :digunakan jika fragment tidak lagi  terlihat. onDestroyView() : digunakan untuk membersihkan resources (sumber daya. onDestroy()  : digunakan untuk membersihkan akhir resources (sumber daya )dari layar fragment. onDetach() : digunakan ketika fragment ,tidak lagi ada di Activity.

TUTORIAL MEMBUAT FRAGMENT BUKA ANDROID STUDIO SEPERTI BIASA

MENERAPKAN CODING ACTICITY Setelah berhasil dibuat kita akan mencoba menerapkan baris intruksi (codingan ) dibawah ke dalam file layout dan file java.

LAYOUT activity_main.xml <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" > <fragment android:id="@+id/fragment2" android:name="com.okedroid.aplikasisaya.Fragment2" android:layout_width="0px" android:layout_height="match_parent" android:layout_weight="1" /> <fragment android:id="@+id/fragment1" android:name="com.okedroid.aplikasisaya.Fragment1" android:layout_width="0px" android:layout_height="match_parent" android:layout_weight="1" /> </LinearLayout>

fragment_satu.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/re s/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#3498db"> <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Fragment Pertama" android:textAppearance="?android:attr/textAppearanceLarge" /> </LinearLayout>

fragment_dua.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:background="#2980b9" > <TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Fragment Kedua" android:textAppearance="?android:attr/textAppearanceLarge" /> </LinearLayout>

Java MainActivity.java package com.okedroid.aplikasisaya; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { // Button variables @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }

Fragment1.java package com.okedroid.aplikasisaya; import android.os.Bundle; import android.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class Fragment1 extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub return inflater.inflate(R.layout.fragment_satu,container, false); }

Fragment2.java package com.okedroid.aplikasisaya; import android.os.Bundle; import android.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class Fragment2 extends Fragment { @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub return inflater.inflate(R.layout.fragment_dua,container, false); }

Setelah berhasil diterapkan kita coba jalankan Aplikasinya lewat Android Studio. Hasilnya kurang lebih akan seperti ini :

MENAMBAHKAN FRAGMENT KE AKTIVITI Biasanya, fragmen menyumbang sebagian UI ke aktivitas host, yang disisipkan sebagai bagian dari hierarki tampilan keseluruhan aktivitas. Ada dua cara untuk menambahkan fragmen pada tata letak aktivitas: Deklarasikan fragmen di dalam file tata letak aktivitas Dalam kasus ini, Anda dapat menentukan properti tata letak untuk fragmen tersebut seolah-olah itu adalah tampilan. Sebagai contoh, inilah file tata letak untuk aktivitas dengan dua fragmen:

<. xml version="1. 0" encoding="utf-8" <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="horizontal" android:layout_width="match_parent" android:layout_height="match_parent"> <fragment android:name="com.example.news.ArticleListFragment" android:id="@+id/list" android:layout_weight="1" android:layout_width="0dp" android:layout_height="match_parent" /> <fragment android:name="com.example.news.ArticleReaderFragment" android:id="@+id/viewer" android:layout_weight="2" android:layout_width="0dp" android:layout_height="match_parent" /> </LinearLayout>

Secara pemrograman tambahkan fragmen yang ada ViewGroup. Setiap saat aktivitas Anda berjalan, Anda dapat menambahkan fragmen ke tata letak aktivitas Anda. Anda hanya perlu menentukan ViewGroup untuk menempatkan fragmen tersebut. Untuk membuat transaksi fragmen dalam aktivitas Anda (seperti menambah, menghapus, atau mengganti fragmen), Anda harus menggunakan API dari FragmentTransaction. Anda bisa mendapatkan instance dari FragmentTransaction dari Aktivitas Anda seperti ini: FragmentManager fragmentManager = getFragmentManager(); FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();

Anda kemudian dapat menambahkan fragmen menggunakan metode add (), menentukan fragmen untuk ditambahkan dan tampilan untuk memasukkannya. Sebagai contoh: ExampleFragment fragment = new ExampleFragment(); fragmentTransaction.add(R.id.fragment_container, fragment); fragmentTransaction.commit(); Argumen pertama yang dilewatkan untuk menambahkan () adalah ViewGroup dimana fragmen harus ditempatkan, ditentukan oleh ID sumber daya, dan parameter kedua adalah fragmen yang akan ditambahkan. Setelah membuat perubahan dengan FragmentTransaction, Anda harus memanggil commit () agar perubahan diterapkan.

MEMBUAT UI FLEXIBLE DENGAN FRAGMENT Saat mendesain aplikasi untuk mendukung berbagai ukuran layar, Anda bisa menggunakan kembali fragmen dalam konfigurasi layout berbeda untuk mengoptimalkan pengalaman pengguna berdasarkan ruang layar yang tersedia. Misalnya, pada perangkat handset, bisa jadi tepat untuk menampilkan satu fragmen dalam satu waktu untuk antarmuka pengguna satu panel. Sebaliknya, Anda mungkin ingin menyetel fragmen dari sisi ke sisi pada tablet yang memiliki ukuran layar yang lebih lebar untuk menampilkan informasi lebih lanjut kepada pengguna.

Prosedur untuk mengganti fragmen serupa dengan menambah fragmen, namun memerlukan metode replace() bukan add(). Perhatikan bahwa saat melakukan transaksi fragmen, misalnya menggantikan atau membuang fragmen, sering kali diperlukan untuk mengizinkan pengguna bernavigasi mundur dan "mengurungkan" perubahan. Untuk mengizinkan pengguna bernavigasi mundur melalui transaksi fragmen, Anda harus memanggil addToBackStack() sebelum Anda mengikat FragmentTransaction. Catatan: Saat Anda membuang atau mengganti fragmen dan menambahkan transaksi ke back-stack, fragmen yang dibuang akan dihentikan (tidak dihancurkan). Jika pengguna bernavigasi mundur untuk memulihkan fragmen, mulai ulang akan terjadi. Jika Anda tidak menambahkan transaksi ke back-stack, fragmen akan dihancurkan saat dihapus atau digantikan.

CONTOH UI FLEXIBLE DENGAN FRAGMENT Metode addToBackStack() mengambil parameter string opsional yang menentukan nama unik untuk transaksi. Nama tidak diperlukan kecuali Anda melakukan operasi fragmen lanjutan menggunakan FragmentManager.BackStackEntry API.

KOMUNIKASI ANTAR FREGMENT Untuk memanfaatkan komponen-komponen UI Fragment, kita sebaiknya membuat masing-masing komponen sebagai komponen modular secara utuh yang mendefinisikan layout dan perilakunya sendiri. Setelah kita mendefiniskan 'Fragment- fragment', kita bisa mengaitkan/mengasosiasikannya dengan suatu 'Activity' dan menghubungkannya dengan lojik aplikasi untuk merealisasikan keseluruhan UI gabungan tersebut.

Membuat 'Interface‘ Untuk membuat suatu 'Fragment' berkomunikasi hingga 'Activity' nya, kita bisa membuat interface di dalam class 'Fragment' dan mengimplementasikannya di dalam 'Activity'. 'Fragment' akan menangkap implementasi interface pada method (siklus hidup) 'onAttach()' dan kemudian bisa memanggil method-method 'Interface' untuk berkomunikasi dengan 'Activity' tersebut.

Berikut dibawah ini adalah contoh komunikasi 'Fragment' ke 'Activity': public class HeadlinesFragment extends ListFragment { OnHeadlineSelectedListener mCallback; // Container Activity must implement this interface public interface OnHeadlineSelectedListener { public void onArticleSelected(int position); } @Override public void onAttach(Activity activity) { super.onAttach(activity); // This makes sure that the container activity has implemented // the callback interface. If not, it throws an exception try { mCallback = (OnHeadlineSelectedListener) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement OnHeadlineSelectedListener");

Sekarang 'fragment' tersebut bisa mengirim pesan ke 'activity' dengan memanggil method 'onArticleSelected()' (atau method-method lainnya di dalam 'interface') dengan menggunakan instan 'mCallback' dari interface 'onHeadlineSelectedListener'. Contohnya, method berikut ini di dalam 'fragment' dipanggil ketika user men-klik pada daftar item. 'Fragment' tersebut akan menggunakan 'interface' untuk mengirim 'event' ke 'activity' induknya. @Override public void onListItemClick(ListView l, View v, int position, long id) { // Send the event to the host activity mCallback.onArticleSelected(position); }

Mengimplementasikan 'Interface‘ Untuk menerima 'event' dari 'fragment', 'activity' yang menjadi tempat penampungnya harus mengimplementasikan 'interface' yang didefinisikan di dalam class 'fragment'. Contohnya, 'activity' berikut ini akan mengimplementasikan 'interface' dari contoh di atas tadi. public static class MainActivity extends Activity implements HeadlinesFragment.OnHeadlineSelectedListener{ ... public void onArticleSelected(int position) { // The user selected the headline of an article from the HeadlinesFragment // Do something here to display that article }

Mengirim Pesan ke 'Fragment‘ 'Activity' yang menjadi tempat penampung bisa mengirim pesan ke suatu 'fragment' dengan menangkap instan 'Fragment' dengan cara 'findFragmentById()', kemudian memanggil langsung method-method public dari 'fragment' tersebut. Contohnya, bayangkan bahwa 'activity' yang ditunjukkan di atas mungkin berisi 'fragment' lain yang digunakan untuk menampilkan item yang ditentukan oleh data yang dihasilkan (dikembalikan) di dalam method di atas. Dalam kasus ini, 'activity' bisa melewatkan informasi yang diterima di dalam method tersebut ke 'fragment' lainnya yang akan menampilkan item:

public static class MainActivity extends Activity implements HeadlinesFragment.OnHeadlineSelectedListener{ ... public void onArticleSelected(int position) { // The user selected the headline of an article from the HeadlinesFragment // Do something here to display that article ArticleFragment articleFrag = (ArticleFragment) getSupportFragmentManager().findFragmentById(R.id.article_fragment); if (articleFrag != null) { // If article frag is available, we're in two-pane layout... // Call a method in the ArticleFragment to update its content articleFrag.updateArticleView(position); } else {

// Otherwise, we're in the one-pane layout and must swap frags // Otherwise, we're in the one-pane layout and must swap frags... // Create fragment and give it an argument for the selected article ArticleFragment newFragment = new ArticleFragment(); Bundle args = new Bundle(); args.putInt(ArticleFragment.ARG_POSITION, position); newFragment.setArguments(args); FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); // Replace whatever is in the fragment_container view with this fragment, // and add the transaction to the back stack so the user can navigate back transaction.replace(R.id.fragment_container, newFragment); transaction.addToBackStack(null); // Commit the transaction transaction.commit(); }