-1

Поиск Опция не работает должным образом в фрагментах диалога. Хотя я использовал ее в другом приложении в activity.I использую Recyclerview.Проблема в поиске в диалоговом фрагменте

Вот мой код на заказ адаптера:

public void filter(final String text) { 
    new Thread(new Runnable() { 
     @Override 
     public void run() { 
      filterlist.clear(); 
      if (TextUtils.isEmpty(text)) { 

       filterlist.addAll(bank); 

      } else { 
       for (Employee item : bank) { 
        if (item.getBank_name().toLowerCase().contains(text.toLowerCase())) { 
         // Adding Matched items 
         filterlist.add(item); 

        } 
       } 
      } 

      ((Activity) context).runOnUiThread(new Runnable() { 
       @Override 
       public void run() { 
        notifyDataSetChanged(); 

       } 
      }); 

     } 
    }).start(); 
} 

Ошибка в ((активность) контексте) .runOnUiThread (новый Runnable()) эта линия

Logcat:

java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.Activity.runOnUiThread(java.lang.Runnable)' on a null object reference 
                      at com.example.abhishek.project.CustomAdapter$1.run(CustomAdapter.java:75) 

recycliewiew:

@Override 
public boolean onQueryTextSubmit(String query) { 
    return false; 
} 

@Override 
public boolean onQueryTextChange(String newText) { 
    try{ 
     if(TextUtils.isEmpty(newText)){ 
      ca.filter(""); 
     } 
     else{ 
      ca.filter(newText.toString()); 
     } 

private void setupSearchView() { 
    search.setIconifiedByDefault(false); 
    search.setOnQueryTextListener(this); 
    search.setSubmitButtonEnabled(true); 
    search.setQueryHint("Search Here"); 

} 
+0

Возможный дубликат [? Что такое NullPointerException, и как это исправить] (http://stackoverflow.com/questions/218384/what -is-a-nullpointerexception-and-how-do-i-fix-it) – earthw0rmjim

+0

Но при удалении runonuithread нет ошибки. – Abhi

+0

Добавление элементов в список и вызов 'notifyDatasetChanged()' должно выполняться в действии или фрагменте, где адаптер инициализируется. –

ответ

0

Вы получаете Activity контекст, как это в DialogFragment:

getActivity().runOnUiThread(new Runnable() { 
    @Override 
    public void run() { 
     notifyDataSetChanged(); 
    } 
}); 
+0

yup, но getActivity не работает в CustomAdapter, и я хочу его в пользовательском адаптере – Abhi

+0

, откуда вы передаете свой «контекст», вы можете публиковать сообщения этот код? –

+0

Контекст проходит в CustomAdapter и уже отправлен, фильтр метода. – Abhi