Membuat SpinnerCombo Android

5
195

Di dalam tutorial ini kita akan mencoba membuat Spinner. Mungkin pembaca sudah mengetahui cara membuatnya,  tetapi di tutorial ini akan dibuat Spinner yang mempunyai keterkaitan antara Spinner pertama dengan Spinner kedua. Nah, Spinner yang akan dibuat berupa nama Tim sepak bola, yang terikat dengan Spinner negara dari tiap-tiap tim. Ribet ya?? :nohope:

Yo Wes to, Monggo langsung saja ke TKP :ngacir2

Berikut langkah-langkahnya :

1. Buat New Project dari File>New>Android Application dengan ketentuan berikut:

  • Project Name : SpinnerCombo
  • Build Target : Android2.2
  • Application name : cobaSpinner
  • Package name : feetbo90.com
  • Activity : Combo
  • MinSDK : 8
  • Click Finish

2. Setelah project tercreate maka secara otomatis membentuk 3 file yaitu:

  • main.xml
  • string.xml
  • Combo.java

3. Edit main.xml ketikkan kode berikut ini

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android= "http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<TextView android:text="Negara :"
android:id="@ id/seleksi_negara"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Spinner android:id="@ id/spinner_negara"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true" />
<TextView android:text="Tim Sepakbola :"
android:id="@ id/seleksi_tim"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
<Spinner android:id="@ id/spinner_tim"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:drawSelectorOnTop="true" />
<Button android:text="Tekan"
android:id="@ id/button"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
<EditText android:text="EditText"
android:id="@ id/editText"
android:layout_height="wrap_content"
android:layout_width="match_parent">
</EditText>
</LinearLayout>

4. Edit Combo.java ketikkan kode dibawah ini

package feetbo90.com;
import java.util.HashMap;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
public class Combo extends Activity implements AdapterView.OnItemSelectedListener{
 /** Called when the activity is first created. */

	TextView seleksi_negara, seleksi_tim;
	Spinner spin_tim;
	Button button;
	EditText Text;
	String[] negara = {"Inggris", "Italia", "Indonesia", "Spanyol"};
	HashMap <String,String []> negara_hash = new HashMap <String,String []>();

 @Override
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 sesuaikan_data();
 setContentView(R.layout.main);
 button =(Button)findViewById(R.id.button);
 Text = (EditText)findViewById(R.id.editText);
 seleksi_negara = (TextView) findViewById(R.id.seleksi_negara);
 Spinner spin =(Spinner)findViewById(R.id.spinner_negara);
 spin.setOnItemSelectedListener(this);
 ArrayAdapter <String> adapter = new ArrayAdapter <String> (this,android.R.layout.simple_spinner_item,negara);
 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
 spin.setAdapter(adapter);
 spin_tim = (Spinner)findViewById(R.id.spinner_tim);
 button.setOnClickListener(new Tekan());
 }
 public void onItemSelected(AdapterView <?> parent, View v, int posisi, long id)
 {
 	isiTim(negara[posisi]);
 }
 public void onNothingSelected(AdapterView <?> parent)
 {
 	Toast.makeText(this, "pilih negara", Toast.LENGTH_LONG).show();
 }
 private void sesuaikan_data()
 {
 	negara_hash.put("Inggris", new String[]{"Arsenal","Chelsea"});
 	negara_hash.put("Italia", new String[]{"AC Milan","Inter Milan"});
 	negara_hash.put("Indonesia", new String[]{"PSMS", "Arema"});
 	negara_hash.put("Spanyol", new String[]{"Real Madrid","Barcelona"});
 }
 private void isiTim(String negara2){
 	String []tim = null;
 	ArrayAdapter <String>adapter2 = null;
 	try{
 		tim = negara_hash.get(negara2);
 		adapter2 Indien en voor zover een goede uitvoering van de overeenkomst dit vereist, heeft The casino de-beste-online-casinos.info Company het recht bepaalde werkzaamheden te laten verrichten door derden. = new The title is currently held by his grandfather who spent 30 best horoscope underwater in 1963. ArrayAdapter <String >(this, android.R.layout.simple_spinner_item,tim);
 	}
 	catch(NullPointerException e)
 	{
 		adapter2 = new ArrayAdapter <String>(this, android.R.layout.simple_spinner_item, new String[]{});

 	}
 	adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
 	spin_tim.setAdapter(adapter2);
 }
 class Tekan implements Button.OnClickListener{
 	public void onClick(View v)
 	{
 		String s = (String)spin_tim.getSelectedItem();
 		Text.setText(s);
 	}
 }
}

Agar isi spinner tim sesuai dengan Negara yang dipilih, maka perlu mempunyai variabel yang menyimpan relasi antara Negara dan Tim, disini References casino online to blackjack online were made by a famous Spanish author named Miguel de Cervantes in his book Don Quixote between 1601 and 1602. kita menggunakan HashMap dimana Negara merupakan kuncinya dan Nama Tim menjadi data.

HashMap <String,String []> negara_hash = new HashMap <String,String []>();

Kita mempunyai tempat untuk menyimpan relasi, dan kita perlu mengisi tempat tersebut dengan data. Dengan membuat fungsi sesuaikan_data()

private void sesuaikan_data()
 {
 negara_hash.put("Inggris", new String[]{"Arsenal","Chelsea"});
 negara_hash.put("Italia", new String[]{"AC Milan","Inter Milan"});
 negara_hash.put("Indonesia", new String[]{"PSMS", "Arema"});
 negara_hash.put("Spanyol", new String[]{"Real Madrid","Barcelona"});
 }

nah, langkah berikutnya kita harus mengisi Tim agar isinya sesuai dengan Negara yang dipilih.

Perhatikan fungsi isiTim

private void isiTim(String negara2){
 String []tim = null;
 ArrayAdapter <String> adapter2 = null;
 try{
 tim = negara_hash.get(negara2);
 adapter2 = new ArrayAdapter <String>(this, android.R.layout.simple_spinner_item,tim);
 }
 catch(NullPointerException e)
 {
 adapter2 = new ArrayAdapter <String>(this, android.R.layout.simple_spinner_item, new String[]{});
}
 adapter2.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
 spin_tim.setAdapter(adapter2);
 }

Method isiTim dipanggil setelah kita memilih Negara. Dengan menggunakan fungsi get

negara_hash.get(negara2);

Pada fungsi isiTim kita juga melakukan Handling Exception NullPointerException. Apabila Negara tidak ditemukan dan bernilai Null.

Perhatikan juga fungsi

class Tekan implements Button.OnClickListener

Di sini kita dapat mengambil nilai dari tim yang kita pilih

5. Jalankan programmnya

Pada Spinner Negara pilih Italia

Kemudian di Spinner Tim Sepakbola pilih AC Milan

Kemudian klik tombol Tekan maka akan mengambil nilai dari apa yang kita ambil

Nah semoga bisa menambah referensi belajar buat teman-teman semua yang ingin mempelajari pemrograman android :).

Semoga bermanfaat,

Best Regards
Mhd Iqbal Pradipta

5 COMMENTS

  1. This is really a really good read for me, Need to admit you might be a single from the greatest bloggers I ever saw.Thanks for posting this informative article.

  2. Maaf baru sempat balas mas. Source codenya sudah terhapus. Ikuti saja code dan langkah” nya mas insya Allah bisa hehe

  3. gan, boleh minta contoh Source Code nya biar saya lebih paham,
    terimakasih sebelumnya udah mau berbagi, kebetulan saya tertarik dengan program android

  4. private void sesuaikan_data() dan private void isiTim itu merupakan fungsi mbak dewi…

    masih didalam satu file combo.java :D…

    belom berbeda package 🙂

  5. maaf mau nanya, yg private void sesuaikan_data() dan private void isiTim(String negara2), itu dibuatnya masih di combo java atau dmn?

    mohon jawaban secepatnya terimakasih.. 🙂

LEAVE A REPLY