2017-02-20 3 views
1

Ich möchte eine SearchView implementieren, um den Inhalt meiner ListView, die in einer Fragmentseite vorhanden ist, zu überprüfen.ClassCastException beim Abrufen von SearchView aus dem Layout

Vor dem Erstellen der searchView funktionierte alles gut (ich meine, die ListView existes). Aber jetzt, da ich mein searchView erstellt habe, stürzt meine App ab.

Hier ist der Code:

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; 
    } 
} 

Ich habe schon ein paar Dokumente zu lesen, aber ich kann die Lösung nicht finden.

Hier ist mein Fehler:

E/Android Runtime: FATAL AUSNAHME: Haupt java.lang.ClassCastException: android.widget.SearchView kann nicht auf android.support.v7.widget.SearchView bei com gegossen werden .example.dasilvadd.students.OngletCours.onCreateView (OngletCours.java:33)

+0

Sie verwenden 2 SearchViews aus verschiedenen Paketen. Verwenden Sie eines von ihnen 'android.support.v7.widget.SearchView' oder' android.widget.SearchView'. Überprüfen Sie Ihre Importe. Der Import sollte wie folgt aussehen http://StackOverflow.com/a/24522846/3111083. Löschen Sie alle v7-Suchansicht aus dem Import –

+0

Mögliche Duplikate von [Kann SearchView in Fragment (AppCompat) nicht umwandeln] (http://stackoverflow.com/questions/22150885/cant-cast-searchview-in-fragment-appcompat) – Sufian

Antwort

Verwandte Themen