Programming

Latihan menampilkan fragment pada activity

17 Mar 2020Khaidir Fahram

Pertama, buat project dengan tipe activity Empty

Ubah layout activity_main.xml menjadi seperti berikut 

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/frame_container"
    android:layout_width="match_parent"
    android:layout_height="match_parent" />

 

Buatlah BlankFragment  dengan nama HomeFragment, kemudian sesuaikan kodenya seperti berikut 

public class HomeFragment extends Fragment implements View.OnClickListener {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_home, container, false);
    }

    @Override
    public void onClick(View v) {
        if (v.getId() == R.id.btn_satu)
            Toast.makeText(getContext(), "Hello", Toast.LENGTH_LONG).show();
    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);
        Button buttonOne = view.findViewById(R.id.btn_satu);
        buttonOne.setOnClickListener(this);
    }
}

Dan sesuaikan desain pada fragment_home.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout 
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:orientation="vertical"
    android:padding="16dp"
    android:layout_height="match_parent">
    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Home Fragment" />

    <Button
        android:id="@+id/btn_satu"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="Satu" />
</LinearLayout>

Terakhir pada MainActivity.java, kita panggil fragment pada method onCreate 

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        FragmentManager manager = getSupportFragmentManager() ;
        HomeFragment homeFragment = new HomeFragment();
        Fragment fragment = manager.findFragmentByTag(HomeFragment.class.getSimpleName());
        if (!(fragment instanceof  HomeFragment)){
            manager.beginTransaction()
                    .add(R.id.frame_container, homeFragment, HomeFragment.class.getSimpleName())
                    .commit();
        }
    }
}

Selesai. silahkan dicoba