2014-02-17 36 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語句改爲if(movie.getName()。equalsIgnoreCase(searchbar)){... – panini

+0

你確定searchbar是你想要搜索的嗎?它的類型是一個String嗎?或者你想要做searchbar.getText()之類的? –

+0

甚至是'searchbar.getText()。trim()'。您是否嘗試通過代碼進行調試? – flx

回答

1

嘗試在測試影片名稱中使用equalsIgnoreCase。因爲它是你必須有一個確切的大小寫匹配。

,你可能會考慮使用indexOf都轉換後的字符串爲小寫的做一個包含搜索。

+0

相同的結果!! – Fawzinov

+0

然後添加一個調試打印的兩個值在循環中,並確保它們是你期望的。 –

+0

電影。 getName不返回! – Fawzinov

0

您確定「MovieReg_activity.movi​​es」不是空的嗎?如果它爲空,則匹配列表不會分配任何電影對象。這可能是match.size()總是爲0的原因。檢查並確保MovieReg_activity.movi​​es不是空的。