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

时间:2017-12-20 18:22:12

标签: android android-spinner

大家好,我一直在尝试检索两个微调器的值,并根据所选项目的值进行简单操作。

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

}



}

感谢大家

3 个答案:

答案 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中:

  • == - &gt;是一个参考比较,即两个对象都指向相同的内存位置
  • .equals() - &gt;评估对象中值的比较

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