Reputation: 11
i have the following code
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
inputListenerKeSeleksiSpinner();
seleksiItemSpinner();
}
// Menambahkan spinner1 agar ketika dipilih keluar toast
public void inputListenerKeSeleksiSpinner()
{
spinner1=(Spinner)findViewById(R.id.spinner1);
spinner1.setOnItemSelectedListener(new ListenerKhusus());
spinner2=(Spinner)findViewById(R.id.spinner2);
spinner2.setOnItemSelectedListener(new ListenerKhusus());
}
// Mengambil value dari Spinner
public void seleksiItemSpinner()
{
spinner1=(Spinner)findViewById(R.id.spinner1);
bulan=spinner1.getSelectedItem().toString();
spinner2=(Spinner)findViewById(R.id.spinner2);
umur=spinner2.getSelectedItem().toString();
if("Januari".equals(bulan) && "18".equals(umur))
{
hasil="Perempuan";
} else
if("Januari".equals(bulan) && "19".equals(umur))
{
hasil="Laki-laki";
};
btnKirim=(Button)findViewById(R.id.btnKirim);
btnKirim.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Toast.makeText(MainActivity.this, "Hasilnya adalah: " + hasil, Toast.LENGTH_LONG).show();
}
});
}
but if i select Januari".equals(bulan) && "19".equals(umur) the answer is always "perempuan" not "laki-laki".. can anyone help me pls??? sorry, my english is bad :D
Upvotes: 0
Views: 255
Reputation: 3477
You're getting the data from the Spinners on activity creation, so whatever the Spinners have selected by default is what you'll get. Instead, get the selected data from the Spinners only when the button is clicked:
public void seleksiItemSpinner()
{
btnKirim=(Button)findViewById(R.id.btnKirim);
btnKirim.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
bulan=spinner1.getSelectedItem().toString();
umur=spinner2.getSelectedItem().toString();
if("Januari".equals(bulan) && "18".equals(umur))
{
hasil="Perempuan";
} else
if("Januari".equals(bulan) && "19".equals(umur))
{
hasil="Laki-laki";
};
Toast.makeText(MainActivity.this, "Hasilnya adalah: " + hasil, Toast.LENGTH_LONG).show();
}
});
}
Upvotes: 1
Reputation: 10177
The reason its giving you the same answer is because you're only asking what's selected in the spinners in the "onCreate." Your onClick is not asking what been selected at the time of the click, its just telling you what was selected when you created the activity.
Solution: move logic to query spinners to inside the onClick.
Upvotes: 0