2012-05-11 6 views
3

Могу ли я сравнить данные от getStringExtra() со строкой? Пример кода:Как сравнить строку с Intent.getStringExtra()?

Intent intent = getIntent(); 
    String path = intent.getStringExtra("category"); 

    if(path == "car"){ 
     setListAdapter(new ArrayAdapter<String>(this, R.layout.subcategory, car)); 
    } else { 
     setListAdapter(new ArrayAdapter<String>(this, R.layout.subcategory, bike)); 
    } 

Почему скрипт не работает?

+0

try: 'path ==" car "' change to 'path.equals (" car ")' – idiottiger

+1

Использовать 'if (" car ".equals (path))', это обработает случай, когда этот путь равен null , – yorkw

+0

wow, great .. я использую этот код if («автомобиль» .equals (путь)) и скрипт работает, thx много :) –

ответ

4

При сравнении двух строк, чтобы проверить, если они равны в Java вы должны использовать равные().

В вашем случае следует изменить сравнения строку

if(path.equals("car")) 

В Явы равенства() сравнивает фактическое содержимое ваших строк, а == только сравнить, чтобы увидеть, если две ссылки равны

2

использование

path.equals("car") "or" 
path.contains("car") "or" 
path.equalsIgnoreCase("car") "or" 

как это более точный

0

== контраст - это адрес памяти, равный контрасту - значение атрибута.

+0

== контраст - это адрес памяти, равный контрасту - значение атрибута – YangHongChang

Смежные вопросы