2016-10-07 6 views
1

Я сравниваю строковое значение из выбранного значения строки из счетчика. Однако, даже если строка, которую я тестирую, является одним и тем же строковым значением из счетчика, она всегда возвращает false. Я тестировал разные способы, упрощая условия и всегда заканчивая тем же. Печатное значение в журнале совпадает со строкой, поэтому почему оно всегда возвращает false?Как сравнить строковое значение со строкой из spinner?

final Spinner spinner_familyTest = (Spinner) findViewById(R.id.spinner_family); 
    ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, 
     R.array.family_array, R.layout.spinner_layout); 
    adapter.setDropDownViewResource(R.layout.spinner_layout); 
    spinner_familyTest.setAdapter(adapter); 

// Value of familyTest from spinner as printed in the log is "Apiaceae" 
    familyTest = spinner_familyTest.getSelectedItem().toString(); 

    if (familyTest == "Apiaceae") { 
        Log.i(TAG, "This is True!"); 
        } 
        Log.i(TAG, "This is False"); 

ответ

0

Я столкнулся с той же проблемой некоторое время назад. Хитрость в том, чтобы использовать equals() вместо ==

Equals() сравнивает строковые значения, тогда как == сравнивает строки refrences

Так что вам нужно сделать, это:

if (familyTest.equals("Apiaceae")) 
{ 
    Log.i(TAG, "This is True!"); 
}