【问题标题】:Searchview Activity changing Fragment ContentSearchview Activity 更改片段内容
【发布时间】: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


    【解决方案1】:

    用户FilterableRecyclerView Adapter。这是使用 RecyclerView 过滤数据的最佳方式。下面是一些演示示例,

    1. https://github.com/Wrdlbrnft/Searchable-RecyclerView-Demo
    2. https://www.androidhive.info/2017/11/android-recyclerview-with-search-filter-functionality/

    【讨论】:

      猜你喜欢
      • 2019-02-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多