我有以下代码
@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();
}
});
}
但如果我选择Januari“.equals(bulan)&&”19“.equals(umur),答案总是”perempuan“而不是”laki-laki“.. 任何人都可以帮我吗??? 对不起,我的英语不好:D
答案 0 :(得分:1)
您在创建活动时从Spinners获取数据,因此无论Spinners默认选择了什么,您都可以获得。而是仅在单击按钮时从Spinners获取所选数据:
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();
}
});
}
答案 1 :(得分:0)
它为您提供相同答案的原因是因为您只是询问“onCreate”中旋转器中选择的内容。你的onClick没有询问点击时选择了什么,它只是告诉你在创建活动时选择了什么。
解决方案:移动逻辑以查询微调器内的onClick。