PEMBUATAN PROGRAM SEDERHANA APLIKASI FRAGMENT


Fragment adalah salah satu komponen utama dalam pengembangan aplikasi Android yang digunakan untuk membuat antarmuka pengguna yang fleksibel dan modular. Fragment adalah bagian dari antarmuka yang dapat dipisahkan dari suatu Activity. Fragment sering digunakan untuk memecah tampilan yang lebih besar menjadi bagian-bagian yang lebih kecil dan dapat digunakan kembali, serta memungkinkan pengelolaan tata letak aplikasi yang lebih baik, terutama untuk perangkat dengan layar yang lebih besar seperti tablet.

Buat project baru dengan nama data kemudian  pilih bahasa java dan API 17: Android 4.2(Jelly Bean)

finish

setelah itu buat blank fragment dengan nama fragment1 isikan code berikut pada fragment1.java : 

package com.example.data;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import androidx.fragment.app.Fragment;

public class fragment1 extends Fragment {

private EditText editTextData;
private Button buttonSend;
private Spinner spinnerNominal, spinnerProvider;

public fragment1() {
// 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_fragment1, container, false);

editTextData = view.findViewById(R.id.editTextData);
buttonSend = view.findViewById(R.id.buttonSend);
spinnerNominal = view.findViewById(R.id.spinnerNominal);
spinnerProvider = view.findViewById(R.id.spinnerProvider);

// Setup spinner for nominal
ArrayAdapter<CharSequence> nominalAdapter = ArrayAdapter.createFromResource(getContext(),
R.array.nominal_array, android.R.layout.simple_spinner_item);
nominalAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerNominal.setAdapter(nominalAdapter);

// Setup spinner for provider
ArrayAdapter<CharSequence> providerAdapter = ArrayAdapter.createFromResource(getContext(),
R.array.provider_array, android.R.layout.simple_spinner_item);
providerAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerProvider.setAdapter(providerAdapter);

buttonSend.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Ambil data dari EditText dan Spinner
String data = editTextData.getText().toString();
String nominal = spinnerNominal.getSelectedItem().toString();
String provider = spinnerProvider.getSelectedItem().toString();

// Kirim data ke fragment penerima
fragment2 receiverFragment = new fragment2();
Bundle bundle = new Bundle();
bundle.putString("dataKey", data);
bundle.putString("nominalKey", nominal);
bundle.putString("providerKey", provider);
receiverFragment.setArguments(bundle);

getFragmentManager().beginTransaction()
.replace(R.id.fragmentContainer, receiverFragment)
.addToBackStack(null)
.commit();
}
});

return view;
}
}

pada fragment_fragment1.xml berikan code berikut :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">

<EditText
android:id="@+id/editTextData"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="Masukkan Nomer"
android:inputType="number"/>

<Spinner
android:id="@+id/spinnerNominal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp" />

<Spinner
android:id="@+id/spinnerProvider"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="16dp" />

<Button
android:id="@+id/buttonSend"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Kirim Data"
android:layout_marginTop="16dp" />

</LinearLayout>

buat blankfragment lagi dengan nama fragment2 

kemudian pada fragment2.java masukan code berikut :

package com.example.data;


import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.fragment.app.Fragment;

public class fragment2 extends Fragment {

private TextView textViewReceivedData;

public fragment2() {
// 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_fragment2, container, false);

textViewReceivedData = view.findViewById(R.id.textViewReceivedData);

// Get data from bundle
Bundle bundle = getArguments();
if (bundle != null) {
String receivedData = bundle.getString("dataKey");
String nominal = bundle.getString("nominalKey");
String provider = bundle.getString("providerKey");

String summary = "Nomer: " + receivedData + "\nNominal: " + nominal + "\nProvider: " + provider;
textViewReceivedData.setText(summary);
}

return view;
}
}

pada fragment_fragment2.xml berikan code berikut :

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:padding="16dp">

<TextView
android:id="@+id/textViewReceivedData"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Data yang diterima akan muncul di sini"
android:textSize="18sp" />

</LinearLayout>

pada MainActivity.java berikan code berikut :

package com.example.data;

import android.os.Bundle;
import androidx.appcompat.app.AppCompatActivity;

public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.fragmentContainer, new fragment1())
.commit();
}
}
}

pada activity_main.xml berikan code berikut :

<?xml version="1.0" encoding="utf-8"?>

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/fragmentContainer"
android:layout_width="match_parent"
android:layout_height="match_parent" />

untuk membuat array buka folder res>values ada file strings.xml berikan code berikut :


<resources>
<string name="app_name">fragment isi pulsapackage com.example.fragmentdatatransfer;

import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import androidx.fragment.app.Fragment;

public class ReceiverFragment extends Fragment {

private TextView textViewReceivedData;

public ReceiverFragment() {
// 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_receiver, container, false);

textViewReceivedData = view.findViewById(R.id.textViewReceivedData);

// Get data from bundle
Bundle bundle = getArguments();
if (bundle != null) {
String receivedData = bundle.getString("dataKey");
String nominal = bundle.getString("nominalKey");
String provider = bundle.getString("providerKey");

String summary = "Data: " + receivedData + "\nNominal: " + nominal + "\nProvider: " + provider;
textViewReceivedData.setText(summary);
}

return view;
}
}
</string>

<!-- Array untuk nominal pulsa -->
<string-array name="nominal_array">
<item>Rp 5,000</item>
<item>Rp 10,000</item>
<item>Rp 20,000</item>
<item>Rp 50,000</item>
<item>Rp 100,000</item>
</string-array>

<!-- Array untuk provider telekomunikasi -->
<string-array name="provider_array">
<item>Telkomsel</item>
<item>Indosat</item>
<item>XL</item>
<item>Smartfren</item>
</string-array>

</resources>

untuk hasilnya lihat pada video di bawah ini :



Posting Komentar

Lebih baru Lebih lama