代码之家  ›  专栏  ›  技术社区  ›  Mary

在条件运算中使用微调器中的选定项(if语句)[重复]

  •  -4
  • Mary  · 技术社区  · 7 年前

    拜托,我有两个 spinners . 我正在努力 string spinnerA 然后,使用这些值作为显示其他值的条件 spinnerB . 我从数据库(mySql)中获取这些值。 代码的一部分如下。语法是正确的(Android Studio没有显示任何错误),但当我在模拟器上运行它时,什么都没有发生,我的意思是 Toast

    你知道这个问题,或者最简单的方法吗?

    PS: 这里只是检查是否存储了值。

    public class ReviewActivity extends AppCompatActivity {
    
    Spinner sp1, sp2;
    TextView companyName;
    Toolbar toolbar;
    
    ArrayList<String> trajets = new ArrayList<String>();
    ArrayList<String> horaires = new ArrayList<String>();
    
    ArrayAdapter<String> adapter1, adapter2;
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_review);
    
        sp1 = (Spinner) findViewById(R.id.spinner_trajet);
        sp2 = (Spinner) findViewById(R.id.spinner_horaire);
    
        adapter1=new ArrayAdapter<String>(this,R.layout.travel_spinner_layout,R.id.txt,trajets);
        sp1.setAdapter(adapter1);
    
        sp1.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> parent, View arg1, int arg2, long arg3) {
                   String travel = sp1.getSelectedItem().toString();
                   if (travel == "NY - CA") {
                        Toast.makeText(ReviewActivity.this, "Yaounde - Douala", Toast.LENGTH_LONG).show();
                    } else if (travel == "CA - NY") {
                        Toast.makeText(ReviewActivity.this, "Douala - Yaounde", Toast.LENGTH_LONG).show();
                    }
                }
    
            @Override
            public void onNothingSelected(AdapterView<?> arg0) {}
    
        });
    
    2 回复  |  直到 7 年前
        1
  •  0
  •   UltimateDevil    7 年前

    试试,这会改变你的 == equals() 在里面

    itemSelectedListener

    请参阅以下更改-:

    String travel = sp1.getSelectedItem().toString();
               if (travel.equals("NY - CA")) {
                    Toast.makeText(ReviewActivity.this, "Yaounde - Douala", Toast.LENGTH_LONG).show();
                } else if (travel.equals("CA - NY")) {
                    Toast.makeText(ReviewActivity.this, "Douala - Yaounde", Toast.LENGTH_LONG).show();
                }
    

    ==

    这个 等于 比较方法2 String 对象,则只要 characters equal

    Here 你可以阅读两者的区别 == 等于

        2
  •  0
  •   Sanoop Surendran    7 年前

    == 不适合比较字符串(实际上是任何对象,除非你知道它们是规范的)。 == 只是比较对象引用。 .equals() 平等测试。对于字符串,它们通常是相同的,但不能保证总是相同的。

    这个 == 运算符检查两个字符串是否完全相同。

    这个 .等于 方法检查两个字符串是否具有相同的值。