Cara Membuat Aplikasi Pemilihan Bahan Seblak Sederhana Dengan Mengirim Data Dari Fragment Satu Ke Fragment Dua
Disini saya akan membuat serta memberitahu kamu cara mengirim data dari fragment satu ke fragment dua. Untuk mengirim data dari fragment satu ke fragment dua dalam Android Studio, kamu bisa mengikuti langkah-langkah berikut ini. Sebelum itu saya ingin memberitahu bahwa saya disini menggunakan Android Studio version Dolphin dengan menggunakan bahasa java.Baik, langkah-langkah dalam membuat aplikasi ini yaitu :
1. Membuat Project Android Studio Baru
- Buka Android Studio → File → New → New Project
- Pilih Template "Empty Activity"
- Klik Next
- Isi Name, Package Name, Save Location, Minimum SDK.
1. untuk name kalian bebas mau kasih nama apa, disini saya kasih nama "AppBahan"
2. package name juga kalian bebas mau kasih nama apa misalkan com.dina.appbahan, disini saya
mengikuti bawaan laptop saja "com.example.appbahan"
3. save location juga sama bebas, disini saya taruh file nya di "C:\AnitaSem7\AppBahan"
AnitaSem7 itu nama folder nya, lalu saya buat folder baru namanya menyesuaikan name yang
tdi yaitu "AppBahan".
4. Language saya menggunakan Java
5. Minimum SDK saya menggunakan API 17:Android 4.2 (Jelly Bean)
2. Membuat Fragment Baru
- Klik kanan pada folder com.example.appbahan → New → Fragment → Fragment(Blank)
- Beri nama fragment kamu bebas, misalkan FragmentA dan FragmentB. Lakukan langkah ini
jika ingin menambah fragment baru.
Setiap fragment memiliki 2 tipe file yaitu .xml dan .java =
- .xml layout (fragment_a.xml) dan (fragment_b.xml). Di dalam file ini digunakan untuk
mendesain tampilan layout kamu.
- .java (FragmentA.java) dan (FragmentB.java). Di dalam file ini digunakan untuk kodingan yang
nantinya menghubungkan fragment a dan fragment b.
> Tampilan fragment_a.xml
berikut tadi tutorial untuk membuat halamannya terlebih dahulu.
setelah membuat halamannya, kita lanjut ke tahap berikutnya yaitu memasukkan kodingannya, agar
lebih mudah saya kasih kodingan tiap halamannya berikut di bawah ini :
1. activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/fragment_container"
tools:context=".MainActivity">
</FrameLayout>
2. MainActivity.java
package com.example.appbahan;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.replace(R.id.fragment_container, new FragmentA())
.commit();
}
}
}
3. fragment_a.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp"
android:background="@drawable/gradient_background"
android:gravity="center"
tools:context=".FragmentA">
<!-- TODO: Update blank fragment layout -->
<TextView
android:textColor="@color/white"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Pilih Bahan Seblak:"
android:textSize="30sp"
android:paddingBottom="16dp"/>
<CheckBox
android:textColor="@color/white"
android:id="@+id/checkKerupuk"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Kerupuk" />
<CheckBox
android:textColor="@color/white"
android:id="@+id/checkTelur"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Telur" />
<CheckBox
android:textColor="@color/white"
android:id="@+id/checkSosis"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Sosis" />
<CheckBox
android:textColor="@color/white"
android:id="@+id/checkBakso"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Bakso" />
<Button
android:id="@+id/buttonLihatPilihan"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Lihat Pilihan" />
</LinearLayout>
4. FragmentA.java
package com.example.appbahan;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentTransaction;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.CheckBox;
public class FragmentA extends Fragment {
private CheckBox checkKerupuk, checkTelur, checkSosis, checkBakso;
private Button buttonLihatPilihan;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_a, container, false);
// Inisialisasi komponen
checkKerupuk = view.findViewById(R.id.checkKerupuk);
checkTelur = view.findViewById(R.id.checkTelur);
checkSosis = view.findViewById(R.id.checkSosis);
checkBakso = view.findViewById(R.id.checkBakso);
buttonLihatPilihan = view.findViewById(R.id.buttonLihatPilihan);
buttonLihatPilihan.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Ambil pilihan dari CheckBox
StringBuilder bahanSeblak = new StringBuilder();
if (checkKerupuk.isChecked()) bahanSeblak.append("Kerupuk, ");
if (checkTelur.isChecked()) bahanSeblak.append("Telur, ");
if (checkSosis.isChecked()) bahanSeblak.append("Sosis, ");
if (checkBakso.isChecked()) bahanSeblak.append("Bakso, ");
// Hapus koma terakhir
if (bahanSeblak.length() > 0) {
bahanSeblak.setLength(bahanSeblak.length() - 2);
}
// Buat bundle untuk mengirim data ke FragmentDua
FragmentB fragmentB = new FragmentB();
Bundle bundle = new Bundle();
bundle.putString("bahanSeblak", bahanSeblak.toString());
fragmentB.setArguments(bundle);
// Ganti fragment
FragmentTransaction transaction = getFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, fragmentB);
transaction.addToBackStack(null);
transaction.commit();
}
});
return view;
}
}
5. fragment_b.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp"
android:gravity="center"
android:background="@drawable/gradient_back"
tools:context=".FragmentB">
<!-- TODO: Update blank fragment layout -->
<TextView
android:id="@+id/textViewPilihanBahan"
android:textColor="@color/white"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Bahan Seblak Pilihan Anda: "
android:textSize="18sp" />
</LinearLayout>
6. FragmentB.java
package com.example.appbahan;
import android.os.Bundle;
import androidx.fragment.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
public class FragmentB extends Fragment {
private TextView textViewPilihanBahan;
public FragmentB() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View view = inflater.inflate(R.layout.fragment_b, container, false);
textViewPilihanBahan = view.findViewById(R.id.textViewPilihanBahan);
// Ambil data dari bundle
Bundle bundle = getArguments();
if (bundle != null) {
String bahanSeblak = bundle.getString("bahanSeblak");
textViewPilihanBahan.setText("Bahan Seblak Pilihan Anda: " + bahanSeblak);
}
return view;
}
}
untuk kodingan background gradient yang di langkah kedua (membuat fragment baru) disitu terlihat
design fragment_a.xml dan fragment_b.xml background tampilannya warna gradasi. berikut caranya :
1. klik kanan pada folder drawable → new → Drawable Resource File
2. beri nama bebas, disini saya beri nama "gradient_background" untuk (fragment_a.xml) sedangkan
untuk (fragment_b.xml) diberi nama "gradient_back".
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item>
<shape android:shape="rectangle">
<gradient
android:startColor="#FF000000"
android:endColor="#FF808080"
android:angle="45"/>
</shape>
</item>
</layer-list>
4. berikut kodingan gradient_back.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp"
android:gravity="center"
android:background="@drawable/gradient_back"
tools:context=".FragmentB">
<!-- TODO: Update blank fragment layout -->
<TextView
android:id="@+id/textViewPilihanBahan"
android:textColor="@color/white"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Bahan Seblak Pilihan Anda: "
android:textSize="18sp" />
</LinearLayout>
Berikut hasil jika aplikasi di running
agar lebih jelas lagi kalian bisa download link file zip nya dibawah ini :
Komentar
Posting Komentar