adv

Kamis, 24 Mei 2012

Membuat SpinnerCombo Android

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 = 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);
}
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 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,

Tidak ada komentar:

Posting Komentar