2013-07-07 4 views
1

Эй, ребята, мне нужна моя функция поиска, чтобы действовать как контакты. Я извлекаю список участников с сервера, и я перестраиваю его, когда пользователь выполняет поиск, чтобы получить результаты. Гувер, я могу заставить его работать, когда они вводят свое полное имя. Позвольте мне показать вам мой код. Я попробовал много комбинаций. Есть идеи? Это приложение для пожертвований для альянса с голодом ребенка. =]onTextChanged, не могу заставить его работать правильно

это только в цикле, чтобы добавить каждое имя FYI

if (searchQ.contains(child.first_name.toLowerCase()) 
|| searchQ.matches(child.last_name.toLowerCase()) { 

id = child.id; 
addChildToList(child); 

} 

if (searchQ.matches("")){ 
    addChildToList(child); 


} 

вот мой textwatcher

public void searchChild(){ 
    final EditText ET = (EditText) findViewById(R.id.search); 


    // create the TextWatcher 
    TextWatcher textWatcher = new TextWatcher() { 

     @Override 
     public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) { 

     } 

     @Override 
     public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { 



      // Rebuilds the list 
      String searchQ = ET.getText().toString(); 
      getChildrenListSearch(searchQ); 


     } 

     @Override 
     public void afterTextChanged(Editable editable) { 
      // Remove rows that do no match 
      TableLayout tl = (TableLayout)findViewById(R.id.childList); 
      tl.removeAllViews(); 


     } 
    }; 

    //we must add the textWatcher to our EditText 
    ET.addTextChangedListener(textWatcher); 

    } 

ответ

1

Другой путь вокруг ...

if (searchQ.contains(child.first_name.toLowerCase()) 
    || searchQ.matches(child.last_name.toLowerCase()) { 

    id = child.id; 
    addChildToList(child); 

    } 

в это ...

if (child.first_name.toLowerCase().contains(searchQ) 
     || searchQ.matches(child.last_name.toLowerCase()) { 

     id = child.id; 
     addChildToList(child); 

     } 
+0

это ломается у ребенка ... доза не работает вообще – NightSkyCode

+0

какая ошибка дает вам? Также вы понимаете, почему это должно быть так? вы ищете, чтобы поисковый запрос частично соответствовал имени ребенка, а не наоборот. –

+0

nvm ваш cbode работал нормально, просто пришлось переключить несколько вещей, и я не смотрел на него таким образом! Я вижу сейчас! Есть ли способ, чтобы он был равенIgnoreCase и содержит в то же время, если я не буду писать другую функцию? – NightSkyCode