Pada tutorial kali ini kita akan belajar membuat aplikasi android
dengan fragment. Seperti yang kita ketahui aplikasi android terdiri dari
sekumpulan activity. Nah pada activity tersebut kita bisa menyisipkan
semacam sub-activity yang kita sebut sebagai fragment. Fragment sangat
berguna karena dapat membuat user-interface dari aplikasi yang kita buat
menjadi dinamis. Untuk mempersingkat waktu, berikut hal yang dibutuhkan
untuk membuat aplikasi ini.
Pilih BlankActivity dan beri nama MainActivity, nama boleh diganti namun saat mengikuti tutorial harus mampu menyesuaikan.
Pada saat awal project dibuat kita hanya mempunyai satu activity dan layout. Sekarang buka layout tersebut yang bernama activity_main.xml (nama layout bisa berbeda tergantung nama acitivity) lalu ubah codenya menjadi seperti berikut.
Pada layout ini kita menaruh FrameLayout yang mana akan menjadi wadah
atau container dari fragment yang akan kita buat. Juga terdapat 2
button untuk merubah fragment, button Fragment A dan button Fragment B.
Setelah itu buka MainActivity.java lalu ubah class tersebut menjadi FragmentActivity dengan cara mengubah extends menjadi FragmentActivity. Jangan lupa untuk mengimport class nya.
*Tips : gunakan alt + enter.
Sekarang kita mulai membuat fragment. Kita akan dua buah fragment dengan tampilan layout yang berbeda. Dengan Android Studio buat fragment melalui File -> New -> Fragment
Buat dua fragment dengan nama FragmentA dan FragmentB. Pada layout fragment A kita akan berikan widget jam analog dan pada fragment B widget jam Digital sehingga terlihat perbedaannya.
Lalu untuk class Fragment kita ubah code nya menjadi seperti berikut
Terakhir kita bisa mengendalikan kedua fragment tersebut melalu
MainActivity. MainActivity disini bertindak sebagai container dari
Fragment yang kita buat sehingga MainActivity harus extends
FragmentActivity.
Untuk bisa mengendalikan fragment maka dibutuhkan FragmentManager. FragmentTransaction digunakan untuk melakukan transaksi fragment seperti tambah fragment, ganti fragment, hapus fragment. Untuk sekarang kita hanya akan menggunakan add dan replace fragment saja.
Jika user menekan button yang ada maka akan ditampilkan fragment yang sudah kita buat.
Sekian tutorial kali ini, semoga bermanfaat dan terima kasih
- IDE (Android Studio)
- FragmentActivity
- FrameLayout
- FragmentManager
- FragmentTransaction
Pilih BlankActivity dan beri nama MainActivity, nama boleh diganti namun saat mengikuti tutorial harus mampu menyesuaikan.
Pada saat awal project dibuat kita hanya mempunyai satu activity dan layout. Sekarang buka layout tersebut yang bernama activity_main.xml (nama layout bisa berbeda tergantung nama acitivity) lalu ubah codenya menjadi seperti berikut.
activity_main.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
| < LinearLayout android:layout_width = "match_parent" android:layout_height = "match_parent" android:padding = "20dp" android:orientation = "vertical" tools:context = ".MainActivity" > < Button android:layout_width = "fill_parent" android:layout_height = "wrap_content" android:text = "Fragment A" android:onClick = "fragmentA" /> < Button android:layout_width = "fill_parent" android:layout_height = "wrap_content" android:text = "Fragment B" android:onClick = "fragmentB" /> < FrameLayout android:id = "@+id/frame" android:layout_width = "fill_parent" android:layout_height = "wrap_content" /> </ LinearLayout > |
Setelah itu buka MainActivity.java lalu ubah class tersebut menjadi FragmentActivity dengan cara mengubah extends menjadi FragmentActivity. Jangan lupa untuk mengimport class nya.
*Tips : gunakan alt + enter.
Sekarang kita mulai membuat fragment. Kita akan dua buah fragment dengan tampilan layout yang berbeda. Dengan Android Studio buat fragment melalui File -> New -> Fragment
Buat dua fragment dengan nama FragmentA dan FragmentB. Pada layout fragment A kita akan berikan widget jam analog dan pada fragment B widget jam Digital sehingga terlihat perbedaannya.
fragment_a.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
| < LinearLayout android:layout_width = "match_parent" android:layout_height = "match_parent" android:padding = "20dp" android:orientation = "vertical" tools:context = "android.fragmentexample.FragmentA" > <!-- TODO: Update blank fragment layout --> < Button android:text = "Fragment A" android:layout_width = "fill_parent" android:layout_height = "wrap_content" /> < AnalogClock android:layout_gravity = "center" android:layout_width = "wrap_content" android:layout_height = "wrap_content" /> < TextView android:layout_gravity = "center" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "Fragment A dengan jam analog" /> </ LinearLayout > |
fragment_b.xml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
| < LinearLayout android:layout_width = "match_parent" android:layout_height = "match_parent" android:padding = "20dp" android:orientation = "vertical" tools:context = "android.fragmentexample.FragmentA" > <!-- TODO: Update blank fragment layout --> < Button android:text = "Fragment B" android:layout_width = "fill_parent" android:layout_height = "wrap_content" /> < DigitalClock android:layout_gravity = "center" android:textSize = "80dp" android:layout_width = "wrap_content" android:layout_height = "wrap_content" /> < TextView android:layout_gravity = "center" android:layout_width = "wrap_content" android:layout_height = "wrap_content" android:text = "Fragment B dengan jam digital" /> </ LinearLayout > |
FragmentA.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| package android.fragmentexample; import android.app.Activity; import android.net.Uri; import android.os.Bundle; import android.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class FragmentA extends Fragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_a, container, false ); return view; } } |
FragmentB.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
| package android.fragmentexample; import android.app.Activity; import android.net.Uri; import android.os.Bundle; import android.app.Fragment; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class FragmentB extends Fragment { public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.fragment_b, container, false ); return view; } } |
Untuk bisa mengendalikan fragment maka dibutuhkan FragmentManager. FragmentTransaction digunakan untuk melakukan transaksi fragment seperti tambah fragment, ganti fragment, hapus fragment. Untuk sekarang kita hanya akan menggunakan add dan replace fragment saja.
MainActivity.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
| package android.fragmentexample; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.support.v4.app.FragmentActivity; import android.support.v7.app.ActionBarActivity; import android.os.Bundle; import android.view.Menu; import android.view.MenuItem; import android.view.View; public class MainActivity extends FragmentActivity { FragmentManager fragmentManager; FragmentTransaction transaction; @Override protected void onCreate(Bundle savedInstanceState) { super .onCreate(savedInstanceState); setContentView(R.layout.activity_main); fragmentManager = getFragmentManager(); transaction = fragmentManager.beginTransaction(); FragmentA a = new FragmentA(); transaction.add(R.id.frame, a); transaction.commit(); } @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflate(R.menu.menu_main, menu); return true ; } @Override public boolean onOptionsItemSelected(MenuItem item) { int id = item.getItemId(); if (id == R.id.action_settings) { return true ; } return super .onOptionsItemSelected(item); } public void fragmentA(View view) { fragmentManager = getFragmentManager(); transaction = fragmentManager.beginTransaction(); FragmentA a = new FragmentA(); transaction.replace(R.id.frame, a); transaction.commit(); } public void fragmentB(View view) { fragmentManager = getFragmentManager(); transaction = fragmentManager.beginTransaction(); FragmentB b = new FragmentB(); transaction.replace(R.id.frame, b); transaction.commit(); } } |
Sekian tutorial kali ini, semoga bermanfaat dan terima kasih
Tidak ada komentar:
Posting Komentar