Spinner dengan pasangan nilai dalam Android

Contoh Kasus:

Saya mempunyai tabel data provinsi sebagai berikut ini:

id_povinsi nama_provinsi
1 DKI Jakarta
2 Jawa Barat
3 Jawa Timur
4 Jawa Tengah

Keinginan:

Saya ingin agar nama provinsi diatas tampil dalam objek spinner seperti terlihat pada gambar dibawah ini:

Dan ketika user memilih salah satu provinsi misalnya “Jawa Barat” maka id provinsinya yang akan didapatkan yaitu angka 2.

Pertanyaan:

Bagaimana cara membuatnya … ?

Jawaban:

Buatlah sebuah class bernama DataProvinsi.java dengan isi seperti kode berikut ini:

public class DataProvinsi{ 

Integer idProvinsi;

String namaProvinsi;

public DataProvinsi(Integer idProvinsi, String namaProvinsi){

this.idProvinsi=idProvinsi;

this.namaProvinsi=namaProvinsi;

}

public Integer getIdProvinsi(){

return this.idProvinsi;

}

public String getNamaProvinsi(){

return this.namaProvinsi;

}

public String toString(){

return this.namaProvinsi;

}

}

Keterangan:

  • Metode toString() mengambil nilai dari variabel namaProvinsi dan objek Spinner akan menjalakan metode ini untuk menampilkan nama provinsi.

Pembuatan Layout

Buatlah sebuah file layout bernama spinner_provinsi.xml dalam folder res/layout dengan isi seperti berikut ini:

<RelativeLayout xmlns:android=”http://schemas.android.com/apk/res/android” 

android:layout_width=”match_parent”

android:layout_height=”match_parent”

>

<TextView

android:id=”@+id/tv1″

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

android:text=”Pilih Provinsi : “

/>
<Spinner

android:layout_toRightOf=”@id/tv1″

android:id=”@+id/spin1″

android:layout_width=”wrap_content”

android:layout_height=”wrap_content”

/>

</RelativeLayout>

Pembuatan Activity

Buatlah sebuah Activity bernama SpinnerProvinsi.java dengan isi seperti berikut ini:

public class SpinnerProvinsi extends Activity { 

DataProvinsi dataProvinsi[]=new DataProvinsi[4];

@Override
protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.spinner_provinsi);

Spinner sp=(Spinner) findViewById(R.id.spin1);

dataProvinsi[0]=new DataProvinsi(1, “DKI Jakarta”);

dataProvinsi[1]=new DataProvinsi(2, “Jawa Barat”);

dataProvinsi[2]=new DataProvinsi(3, “Jawa Timur”);

dataProvinsi[3]=new DataProvinsi(4, “Jawa Tengah”);

ArrayAdapter<DataProvinsi> adapter=new ArrayAdapter<DataProvinsi>(this,

android.R.layout.simple_spinner_item, dataProvinsi);

adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

sp.setAdapter(adapter);

sp.setOnItemSelectedListener(new OnItemSelectedListener() {

@Override
public void onItemSelected(AdapterView<?> parent, View view,  int position, long id) {

DataProvinsi d=dataProvinsi[position];

Toast.makeText(SpinnerProvinsi.this, ” “+d.getIdProvinsi(), Toast.LENGTH_LONG).show();

}

@Override
public void onNothingSelected(AdapterView<?> parent) {

}

});

}

}

Keterangan:

  • new DataProvinsi(1, “DKI Jakarta”), Kode ini digunakan untuk membuat objek dari class DataPronvisi dan memasukkan nilai idProvinsi=1 dan namaProvinsi=”DKI Jakarta”.
  • Untuk keterangan dasar dari komponen Spinner maka kamu bisa baca artikelnya disini.

Hasil:

Silahkan kamu coba dan lihatlah hasilnya apakah sudah sesuai.

You may also like...

Leave a Reply

Your email address will not be published. Required fields are marked *