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
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.
Maaf baru sempat balas mas. Source codenya sudah terhapus. Ikuti saja code dan langkah” nya mas insya Allah bisa hehe
gan, boleh minta contoh Source Code nya biar saya lebih paham,
terimakasih sebelumnya udah mau berbagi, kebetulan saya tertarik dengan program android
private void sesuaikan_data() dan private void isiTim itu merupakan fungsi mbak dewi…
masih didalam satu file combo.java :D…
belom berbeda package 🙂
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.. 🙂