Navigate Page with Activity and Fragment

Mila
pie-o
Published in
2 min readMay 4, 2017

Sprint 2 telah berlalu, kini Sibujang akhirnya sudah mulai berbentuk dan dapat dinavigasikan!

Pada post sebelumnya saya membahas bottom navigation dengan fragment secara singkat, kini saya akan menjabarkannya dengan jelas dikarenakan saya telah berhasil menavigasikan bottom navigation dengan bantuan sebuah main activity dan beberapa fragment.

Pada sprint 1 kelompok kami membentuk page lihat pencapaian pada sebuah MainActivity yang tentunya perlu kami perbaiki stukturnya agar bisa dinavigasikan. User story lihat pencapaian dipisahkan kepada sebuah fragment. Masalah yang saya hadapi pada minggu lalu adalah kesalahan memanggil fragment pada selectedListener menu dan pada menjalankan oncreateview fragment.

Berikut merupakan cara pemanggilan fragment pada menu yang benar

private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
= new BottomNavigationView.OnNavigationItemSelectedListener() {

@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
Fragment selectedFragment = null;
switch (item.getItemId()) {
case R.id.navigation_pencapaian:
getSupportActionBar().setTitle("Pencapaian Terbaru");
selectedFragment = ListAchievementFragment.newInstance();
break;
case R.id.navigation_ringkasan:
getSupportActionBar().setTitle("Ringkasan");
selectedFragment = SummaryFragment.newInstance();
break;
case R.id.navigation_profil:
getSupportActionBar().setTitle("Profil");
selectedFragment = ProfileFragment.newInstance();

break;
}
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.frame_layout, selectedFragment);
transaction.commit();
return true;
}

};

Pada konsepnya,Activity pada mainActivity akan diberikan fragment pada activitynya yang dapat berganti-ganti dengan navigasi. Untuk perpindahan fragment digunakan kelas FragmentTransaction dan digunakan method replace(frame_yang_akan_direplace, fragment_yang_akan_diletakkan) lalu di commit().

Selanjutnya untuk pembentukkan fragmentnnya sendiri contohnya adalah

public class ProfileFragment extends Fragment {
private ListView listView;
private Context ctx;
View mView;

public static ProfileFragment newInstance() {
ProfileFragment fragment = new ProfileFragment();
return fragment;
}

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mView = inflater.inflate(R.layout.fragment_profile, container, false);
//Letakkan kode impelementasi disini

return mView;
}

Peletakkan kode implementasi dilakukan pada method onCreateView. Perlu diperhatikan bahwa untuk meletakkan fragment haruslah pada sebuah layout frame dan layout fragmentnya sendiri haruslah merupakan frame maupun relativelayout.

Sekian, Terimakasih!

--

--