Beranda
Latihan menampilkan fragment pada activity
Latihan menampilkan fragment pada activity

Latihan menampilkan fragment pada activity

Khaidir Fahram 17 Mar 2020 Programming 1641 Views

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

Tags:Android