【发布时间】:2018-07-12 05:54:08
【问题描述】:
我一直在关注Youtube 中的本教程,该教程教授如何过滤 recyclerview 内容。
但我们有不同的实现方式。
我想要的应用程序有一个activity,它有一个搜索片段recyclerview的searchview,而他只有一个activity。
这是我的代码: 家庭活动
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;
}
不同之处在于 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: 致命异常: 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.graphics.drawable.RippleDrawable',引用自方法 android.support.v7.widget.AppCompatImageHelper.hasOverlappingRendering强>
【问题讨论】:
标签: android android-recyclerview searchview