旋转器,拦截并检查默认值

问题描述 投票:0回答:3

嗨伙计们,我一直在尝试检索两个微调器的值,并根据所选项的值进行简单的操作。

我已设法检索该值并将其打印在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
        }
    });

}



}

感谢大家

android android-spinner
3个回答
0
投票

这条线有问题

if(sp_away.getSelectedItem()。toString()!=“Select Team”){

因为在Java中:

  • == - >是参考比较,即两个对象都指向相同的内存位置
  • .equals() - >计算对象中值的比较

因此,在比较字符串值时,始终使用equals而不是== OR!=


1
投票

使用.equals()来比较字符串,而不是==或!=。 .equals()检查每个索引处的字符。 ==只检查引用的相等性,这几乎不会起作用。


1
投票

比较Android中的String你必须使用“equals”

if (!sp_home.getSelectedItem().toString().equals ("Select Team")) {
            Toast.makeText(getBaseContext(), 
            sp_home.getSelectedItem().toString(),
                    Toast.LENGTH_LONG).show();
        }
© www.soinside.com 2019 - 2024. All rights reserved.