Tag: spinner

  • Belajar Android: #99 Membuat Widget Spinner

    <Spinner
            android:id="@+id/spinner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="64dp"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/tv_title_spinner" />

    Setelah itu, kita buat kode di dalam Class Activity-nya, supaya dapat berfungsi.

    Definisikan view spinner di atas method onCreate supaya bisa diakses.

    Spinner spinner;

    Lalu assign dengan view di layout

    spinner = findViewById(R.id.spinner) //sesuaikan dengan id di layoutnya

    Tentukan data yang berbentuk Array atau ArrayList:

    String[] buahs = {"Mangga", "Semangka", "Jeruk", "Apel"};

    Buat adapter array untuk menjembatani antara sumber data dengan adapter view. Isikan tiga (3) parameter construct dengan (context: this, layout view, data)

    ArrayAdapter<String> adapter = new ArrayAdapter<>(
    	this,
      	android.R.layout.simple_spinner_item, //Menggunakan bawaan android
      	buahs
    );

    Terakhir, sambungkan view dengan data menggunakan adapater tersebut.

    spinner.setAdapter(adapter);

    Berikut kode lengkapnya

    Layout xml:

    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout 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:id="@+id/main"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".SpinnerActivity">
    
        <TextView
            android:id="@+id/tv_title_spinner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="64dp"
            android:textStyle="bold"
            android:textSize="20sp"
            android:text="Pilih yang kamu suka"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            />
        <Spinner
            android:id="@+id/spinner"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="64dp"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/tv_title_spinner" />
    </androidx.constraintlayout.widget.ConstraintLayout>

    Kode class activity java:

    package id.my.matsoleh.belajar;
    
    import android.os.Bundle;
    import android.widget.ArrayAdapter;
    import android.widget.Spinner;
    
    import androidx.activity.EdgeToEdge;
    import androidx.appcompat.app.AppCompatActivity;
    import androidx.core.graphics.Insets;
    import androidx.core.view.ViewCompat;
    import androidx.core.view.WindowInsetsCompat;
    
    public class SpinnerActivity extends AppCompatActivity {
        Spinner spinner;
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_spinner);
    
        // Tentukan View
            spinner = findViewById(R.id.spinner);
    
        //  Sumber Data
            String[] buahs = {"Mangga", "Pisang", "Apel", "Jeruk", "Semangka"};
            
            //   Adapter
            ArrayAdapter<String> adapter = new ArrayAdapter<>(
                    this,
                    android.R.layout.simple_spinner_item,
                    buahs
            );
            
        //  Apply adapter
            spinner.setAdapter(adapter);
            
        }
    }