我一直在Youtube的本教程中学习如何过滤recyclerview内容。
但是我们有不同的实现方式。
我想要的应用程序具有活动,该活动具有一个搜索视图,该视图搜索片段回收视图,而他只有一个活动。
这是我的代码: HomeActivity
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);
}
FragmentSearch
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;
}
区别在于OnQueryTextSubmit,我试图在片段中创建一个方法来接受用户查询
错误:
07-12 13:54:52.038 6262-6262 / com.example.earlcscabanig.thestoreapp E / dalvikvm:找不到类android.graphics.drawable.RippleDrawable,该类从方法android.support.v7.widget引用.AppCompatImageHelper.hasOverlappingRendering 07-12 13:54:56.948 1086-1479 / system_process E / SoundPool:错误加载/system/media/audio/ui/Effect_Tick.ogg 07-12 13:54:56.948 1086-1479 / system_process E / SoundPool:错误加载/system/media/audio/ui/Effect_Tick.ogg 07-12 13:54:56.958 1086-1479 / system_process E / SoundPool:错误加载/system/media/audio/ui/Effect_Tick.ogg 07-12 13:54:56.978 1086-1479 / system_process E / SoundPool:错误加载/system/media/audio/ui/Effect_Tick.ogg 07-12 13:54:56.978 1086-1479 / system_process E / SoundPool:错误加载/system/media/audio/ui/Effect_Tick.ogg 07-12 13:54:56.988 1086-1479 / system_process E / SoundPool:错误加载/system/media/audio/ui/KeypressStandard.ogg 07-12 13:54:57.008 1086-1479 / system_process E / SoundPool:错误加载/system/media/audio/ui/KeypressSpacebar.ogg 07-12 13:54:57.018 1086-1479 / system_process E / SoundPool:错误加载/system/media/audio/ui/KeypressDelete.ogg 07-12 13:54:57.018 1086-1479 / system_process E / SoundPool:错误加载/system/media/audio/ui/KeypressReturn.ogg 07-12 13:54:57.038 1086-1479 / system_process E / SoundPool:错误加载/system/media/audio/ui/KeypressInvalid.ogg 07-12 13:54:57.058 6262-6262 / com.example.earlcscabanig.thestoreapp E / AndroidRuntime:FATAL EXCEPTION:main 流程:com.example.earlcscabanig.thestoreapp,PID:6262 java.lang.NullPointerException 在com.example.earlcscabanig.thestoreapp.fragments.FragmentSearch.filterHandler(FragmentSearch.java:82) 在com.example.earlcscabanig.thestoreapp.HomeActivity.onQueryTextChange(HomeActivity.java:144)
还有一个 NullPointer 和,因为找不到方法“ android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering”所引用的类“ android.graphics.drawable.RippleDrawable”