嗨伙计们,我一直在尝试检索两个微调器的值,并根据所选项的值进行简单的操作。
我已设法检索该值并将其打印在Toast消息中。问题是,只要我启动应用程序,就会在Toast消息中显示默认值“Select Team”。
为了避免这种情况,我试图拦截值并打印吐司消息,只有它与“选择团队”不同,但它似乎不起作用。 “if”语句完全被忽略。
这是代码,考虑到我是Java和Android编程的新手,我希望收到有关可能改进的代码的其他部分的注释。
public class MainActivity extends AppCompatActivity {
Spinner sp_home;
Spinner sp_away;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sp_home = (Spinner) findViewById(R.id.spinner_home_team);
sp_away = (Spinner) findViewById(R.id.spinner_away_team);
sp_home.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
if (sp_home.getSelectedItem().toString() != "Select Team") {
Toast.makeText(getBaseContext(), sp_home.getSelectedItem().toString(),
Toast.LENGTH_LONG).show();
}
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
sp_away.setOnItemSelectedListener(new OnItemSelectedListener() {
public void onItemSelected(AdapterView<?> arg0, View arg1,
int arg2, long arg3) {
if (sp_away.getSelectedItem().toString() != "Select Team") {
Toast.makeText(getBaseContext(), sp_away.getSelectedItem().toString(),
Toast.LENGTH_LONG).show();
}
}
public void onNothingSelected(AdapterView<?> arg0) {
// TODO Auto-generated method stub
}
});
}
}
感谢大家
这条线有问题
if(sp_away.getSelectedItem()。toString()!=“Select Team”){
因为在Java中:
因此,在比较字符串值时,始终使用equals而不是== OR!=
使用.equals()来比较字符串,而不是==或!=。 .equals()检查每个索引处的字符。 ==只检查引用的相等性,这几乎不会起作用。
比较Android中的String你必须使用“equals”
if (!sp_home.getSelectedItem().toString().equals ("Select Team")) {
Toast.makeText(getBaseContext(),
sp_home.getSelectedItem().toString(),
Toast.LENGTH_LONG).show();
}