大家好,我一直在尝试检索两个微调器的值,并根据所选项目的值进行简单操作。
我已设法检索该值并将其打印在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
}
});
}
}
感谢大家
答案 0 :(得分:1)
使用.equals()来比较字符串,而不是==或!=。 .equals()检查每个索引处的字符。 ==只检查引用的相等性,这几乎不会起作用。
答案 1 :(得分:1)
比较你必须使用的Android中的字符串&#34;等于&#34;
if (!sp_home.getSelectedItem().toString().equals ("Select Team")) {
Toast.makeText(getBaseContext(),
sp_home.getSelectedItem().toString(),
Toast.LENGTH_LONG).show();
}
答案 2 :(得分:0)
此行存在问题
if(sp_away.getSelectedItem()。toString()!=&#34;选择Team&#34;){
因为在Java中:
因此,在比较字符串值时,始终使用equals而不是== OR!=