Android Searchview活动更改片段内容

Android Searchview活动更改片段内容,android,android-recyclerview,searchview,Android,Android Recyclerview,Searchview,我一直在学习本教程,它教我如何过滤recyclerview内容 但我们有不同的实现方式 我想要的应用程序有一个活动,该活动有一个搜索视图,搜索片段recyclerview,而他的只有一个活动 这是我的代码: 家庭活动 FragmentSearch fs; fs = new FragmentSearch(); @Override public boolean onCreateOptionsMenu(Menu menu) { getMenuInflater().inflat

我一直在学习本教程,它教我如何过滤recyclerview内容

但我们有不同的实现方式

我想要的应用程序有一个活动,该活动有一个搜索视图,搜索片段recyclerview,而他的只有一个活动

这是我的代码: 家庭活动

 FragmentSearch fs;   
fs = new FragmentSearch();
    @Override
public boolean onCreateOptionsMenu(Menu menu) {

    getMenuInflater().inflate(R.menu.search_menu, menu);
    SearchView searchView = (SearchView) menu.findItem(R.id.action_search).getActionView();
    searchView.setOnQueryTextListener(this);
    return true;
}
@Override
public boolean onQueryTextSubmit(String query) {

    return false;
}

@Override
public boolean onQueryTextChange(String newText) {
   return fs.filterHandler(newText);
}
碎片搜索

 public boolean filterHandler(String newText){
    newText = newText.toLowerCase();
    ArrayList<Product> newList = new ArrayList<>();
    for(Product product: productArrayList){
        String name = product.getName().toLowerCase();
        if(name.contains(newText)){
            newList.add(product);
        }
    }
    adapter.setFilter(newList);
    return true;
}
公共布尔过滤器句柄(字符串newText){
newText=newText.toLowerCase();
ArrayList newList=新的ArrayList();
for(产品:productArrayList){
字符串名称=product.getName().toLowerCase();
if(name.contains(newText)){
添加(产品);
}
}
adapter.setFilter(newList);
返回true;
}
不同之处在于OnQueryTextSubmit,我尝试在片段中创建一个方法来接受用户查询

错误:

07-12 13:54:52.038 6262-6262/com.example.earlcscabanig.thestoreapp E/dalvikvm:找不到从方法android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering引用的类“android.graphics.drawable.RippleDrawable” 07-12 13:54:56.948 1086-1479/系统/进程E/声音池:加载错误/系统/媒体/音频/用户界面/效果 07-12 13:54:56.948 1086-1479/系统/进程E/声音池:加载错误/系统/媒体/音频/用户界面/效果 07-12 13:54:56.958 1086-1479/系统/进程E/声音池:加载错误/系统/媒体/音频/用户界面/效果 07-12 13:54:56.978 1086-1479/系统/进程E/声音池:加载错误/系统/媒体/音频/用户界面/效果 07-12 13:54:56.978 1086-1479/系统/进程E/声音池:加载错误/系统/媒体/音频/用户界面/效果 07-12 13:54:56.988 1086-1479/system_进程E/声音池:加载错误/system/media/audio/ui/KeyPress Standard.ogg 07-12 13:54:57.008 1086-1479/system_进程E/声音池:加载错误/system/media/audio/ui/Keypress Spacebar.ogg 07-12 13:54:57.018 1086-1479/系统\进程E/声音池:加载错误/system/media/audio/ui/KeypressDelete.ogg 07-12 13:54:57.018 1086-1479/系统\进程E/声音池:加载错误/system/media/audio/ui/KeypressReturn.ogg 07-12 13:54:57.038 1086-1479/系统\进程E/声音池:加载错误/system/media/audio/ui/KeypressInvalid.ogg 07-12 13:54:57.058 6262-6262/com.example.earlcscabanig.thestoreapp E/AndroidRuntime:致命异常:main 进程:com.example.earlcscabanig.thestoreapp,PID:6262 java.lang.NullPointerException 位于com.example.earlcscabanig.thestoreapp.FragmentSearch.filterHandler(FragmentSearch.java:82) 在com.example.earlcscabanig.thestoreapp.HomeActivity.onQueryTextChange(HomeActivity.java:144)上

有一个空指针以及无法找到类“android.graphics.drawable.RippleDrawable”,该类引用自方法android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering

带有
RecyclerView适配器的用户。这是使用RecyclerView筛选数据的最佳方法。下面是一些演示示例