我想实现一个searchView来检查Fragment页面中存在的ListView的内容。
在创建searchView之前,一切正常(我的意思是,ListView existes)。但是现在我创建了我的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:致命异常:主要 java.lang.ClassCastException:android.widget.SearchView无法强制转换为android.support.v7.widget.SearchView 在com.example.dasilvadd.students.OngletCours.onCreateView(OngletCours.java:33)
答案 0 :(得分:0)
您必须更改此内容:
import android.widget.SearchView;
对此:
import android.support.v7.widget.SearchView;
在MainActivity.java中。