2017-02-20 3 views
1

Я хочу реализовать searchView для проверки содержимого моего ListView, который существует на странице фрагмента.ClassCastException при получении SearchView из макета

Перед созданием searchView все работает нормально (я имею в виду, что ListView существует). Но теперь, когда я создал свой searchView, мое приложение падает.

Вот код:

public class OngletCours extends Fragment implements Filterable{ 
    @Override 
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
     View rootView = inflater.inflate(R.layout.ongletcours, container, false); 
     SearchView sv = (SearchView)rootView.findViewById(R.id.SVRechercher); 
     List<Cours> listeCours; 

     ListView l1= (ListView)rootView.findViewById(R.id.ListCours); 
     DatabaseHelper dbhelper = new DatabaseHelper(getContext()); 
     ArrayList<String> arrayList ; 
     listeCours= dbhelper.getAllCours(); 
     if (!listeCours.isEmpty()){ 
      String item; 
      String[] cours = {""}; 

      arrayList=new ArrayList<>(Arrays.asList(cours)); 
      ArrayAdapter adapter = new ArrayAdapter<String>(getContext(),android.R.layout.simple_list_item_1, arrayList); 
      l1.setAdapter(adapter); 
      for(int i = 0; i < listeCours.size(); i++) { 
       item = listeCours.get(i).getCours(); 
       arrayList.add(item); 
       adapter.notifyDataSetChanged(); 
       Collections.sort(arrayList, String.CASE_INSENSITIVE_ORDER); 
       sv.setOnQueryTextListener(new SearchView.OnQueryTextListener() { 
        @Override 
        public boolean onQueryTextSubmit(String text) { 
         return false; 
        } 

        @Override 
        public boolean onQueryTextChange(String text) { 

         return false; 
        } 
       }); 
      } 
     } else { 
      Toast t = Toast.makeText(getActivity(),"Error",Toast.LENGTH_LONG); 
      t.show(); 
     } 
     return rootView; 
    } 
} 

Я уже прочитал несколько документов, но я не могу найти решение.

Вот моя ошибка:

E/AndroidRuntime: FATAL ИСКЛЮЧЕНИЕ: главный java.lang.ClassCastException: android.widget.SearchView не может быть приведен к android.support.v7.widget.SearchView на ком .example.dasilvadd.students.OngletCours.onCreateView (OngletCours.java:33)

+0

Вы используете 2 SearchViews из разных пакетов. Используйте один из них 'android.support.v7.widget.SearchView' или' android.widget.SearchView' .Проверьте свой импорт. Импорт должен выглядеть следующим образом: http://stackoverflow.com/a/24522846/3111083. Избавьтесь от всех v7 Searchview из импорта –

+0

Возможный дубликат [Невозможно включить SearchView в Fragment (AppCompat)] (http://stackoverflow.com/questions/22150885/cant-cast-searchview-in-fragment-appcompat) – Sufian

ответ

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