2014-02-17 2 views
0

у меня есть ArrayList из «фильма» объект я хотел искать в нем «имя», который является одним из атрибутов объекта фильмапоиска в ArrayList и возвращает вывод в другой ArrayList

тот код используемый для поиска

 ArrayList<movie> matches = new ArrayList<movie>(); 
       // go through list of members and compare name with given name 
       for(movie movie : MovieReg_activity.movies) { 
       Log.d("searchBar", searchbar); 
       Log.d("Movie Name", movie.getName()); 
        if (movie.getName().equalsIgnoreCase(searchbar)) { 
         matches.add(movie); // adds matching member to the return list 
        } 
       } 
       int match_size=matches.size(); 
       tv.setText("no of matches=" +match_size); 

match_size всегда равно нулю!

Вот класс кино

public class movie { 

    String name; 
    int dvd_no ; 

    public movie(String name1 , int dvd_no1) 
    { 
       this.name = name1 ; 
      this.dvd_no = dvd_no1 ; 

    } 

    String getName() 
    { 
     return this.name ; 
    } 

} 

, что проблема с этим кодом?

LogCat

02-17 04:28:38.500: I/Process(638): Sending signal. PID: 638 SIG: 9 
02-17 04:30:27.020: W/KeyCharacterMap(720): No keyboard for id 0 
02-17 04:30:27.020: W/KeyCharacterMap(720): Using default keymap: /system/usr/keychars/qwerty.kcm.bin 
02-17 04:43:35.531: W/KeyCharacterMap(747): No keyboard for id 0 
02-17 04:43:35.531: W/KeyCharacterMap(747): Using default keymap: /system/usr/keychars/qwerty.kcm.bin 
02-17 04:55:23.350: W/KeyCharacterMap(774): No keyboard for id 0 
02-17 04:55:23.360: W/KeyCharacterMap(774): Using default keymap: /system/usr/keychars/qwerty.kcm.bin 
02-17 04:58:04.050: W/KeyCharacterMap(801): No keyboard for id 0 
02-17 04:58:04.050: W/KeyCharacterMap(801): Using default keymap: /system/usr/keychars/qwerty.kcm.bin 
02-17 04:59:40.970: W/KeyCharacterMap(828): No keyboard for id 0 
02-17 04:59:40.970: W/KeyCharacterMap(828): Using default keymap: /system/usr/keychars/qwerty.kcm.bin 
02-17 05:01:25.971: W/KeyCharacterMap(881): No keyboard for id 0 
02-17 05:01:25.971: W/KeyCharacterMap(881): Using default keymap: /system/usr/keychars/qwerty.kcm.bin 
02-17 05:01:49.500: W/IInputConnectionWrapper(881): showStatusIcon on inactive InputConnection 
02-17 05:02:54.722: W/KeyCharacterMap(908): No keyboard for id 0 
02-17 05:02:54.722: W/KeyCharacterMap(908): Using default keymap: /system/usr/keychars/qwerty.kcm.bin 
02-17 05:24:44.560: W/KeyCharacterMap(935): No keyboard for id 0 
02-17 05:24:44.560: W/KeyCharacterMap(935): Using default keymap: /system/usr/keychars/qwerty.kcm.bin 
02-17 05:27:29.980: W/KeyCharacterMap(962): No keyboard for id 0 
02-17 05:27:29.980: W/KeyCharacterMap(962): Using default keymap: /system/usr/keychars/qwerty.kcm.bin 
02-17 05:27:37.289: D/searchBar(962): fawzy 
02-17 05:29:33.540: D/searchBar(962): fawzy 
+0

это чувствительность к регистру важный? if not, затем измените свой статус if на if (movie.getName(). equalsIgnoreCase (searchbar)) {... – panini

+0

Вы уверены, что поисковая панель - это то, что вы хотите найти? Является ли его тип строкой? Или вы хотите сделать searchbar.getText() или тому подобное? –

+0

или даже 'searchbar.getText(). Trim()'. Вы пытались отладить свой код? – flx

ответ

1

Попробуйте использовать equalsIgnoreCase в тесте на название фильма. Как и вы, вы должны иметь точное соответствие.

И вы можете подумать об использовании indexOf после преобразования обеих строк в нижний регистр, чтобы выполнить поиск.

+0

тот же результат !! – Fawzinov

+0

Затем добавьте отладочную печать двух значений в цикле и убедитесь, что они того, чего вы ожидаете. –

+0

Movie. getName не возвращается! – Fawzinov

0

Вы уверены, что «MovieReg_activity.movies» не пуст? Если он пуст, список совпадений не назначает никаких объектов фильма. Это может быть причиной, по которой вы всегда получаете 0 для match.size(). Проверьте и убедитесь, что MovieReg_activity.movies не пуст.

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