我正在制作一个带有两个微调器的货币转换器。我想使用微调器所选项的值来制作一个“if”函数,如下所示。
@Override
public void onClick(View v) {
if (spinner1.getSelectedItem()=="Dollars" && spinner2.getSelectedItem()=="Euros") {
convertDollarstoEuros();
}
if (spinner1.getSelectedItem()=="Euros" && spinner2.getSelectedItem()=="Euros") {
convertEurostoEuros();
}
Toast.makeText(MainActivity.this,
"OnClickListener : " +
"\nSpinner 1 : "+ String.valueOf(spinner1.getSelectedItem()) +
"\nSpinner 2 : "+ String.valueOf(spinner2.getSelectedItem()),
Toast.LENGTH_SHORT).show();
}
问题是烤面包正在显示,但货币没有转换。吐司部分正在工作,但旋转部分不是。任何帮助将不胜感激。这是我的LogCat:
答案 0 :(得分:1)
在Spinner上使用OnItemSelectedListener
spinner1.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
String text = spinner1.getSelectedItem().toString().trim();
if (text.equalsIgnoreCase("Dollars")) {
//do something
}
}
public void onNothingSelected(AdapterView<?> arg0) {
}
});
答案 1 :(得分:0)
您正在直接比较String。在Java中,您应该将字符串与equals
方法进行比较。
if("Dollars".equals(spinner1.getSelectedItem()) && ...
有关详细信息,请参阅以下问题:How do I compare strings in Java?