【发布时间】:2019-04-04 07:00:26
【问题描述】:
朋友们,我有一个带有搜索视图和回收视图的片段。我想在 recyclerview 数据上实现该搜索视图。当我尝试从片段中的适配器类调用方法时遇到问题,它不允许它并要求我将适配器类中的方法设为静态,即不好。这是所需的片段代码 -
private void processQuery(String query) {
// in real app you'd have it instantiated just once
ArrayList<String> result = new ArrayList<>();
// case insensitive search
for (String category : category_name) {
if (category.toLowerCase().contains(query.toLowerCase())) {
result.add(category);
}
}
(MyCategoryAdaptercheckbox) MyAdapter.setCategorynames(result);
}
我在这条线上遇到错误-
(MyCategoryAdaptercheckbox) MyAdapter.setCategorynames(result);
这是我的 MyAdaper 声明和初始化 -
RecyclerView.Adapter MyAdapter;
MyAdapter = new MyCategoryAdaptercheckbox(getMyCategoryAdapter1, getActivity().getApplicationContext(),category_name);
recyclerView.setAdapter(MyAdapter);
这是我的适配器类 (setCategorynames) 方法。它要求我将此方法设为静态 -
public void setCategorynames(List<String> category_name) {
this.category_name = category_name;
notifyDataSetChanged();
}
所以我想知道如何在片段中调用适配器类的方法? 我的适配器类代码-
public class MyCategoryAdaptercheckbox extends RecyclerView.Adapter<MyCategoryAdaptercheckbox.ViewHolder> {
List<GetMyCategoryAdapter> getMyCategoryAdapter;
Context context;
List<String> category_name;
GetMyCategoryAdapter getMyCategoryAdapter1;
public MyCategoryAdaptercheckbox(List<GetMyCategoryAdapter> getMyCategoryAdapter, Context context, List<String> category_name) {
this.getMyCategoryAdapter = getMyCategoryAdapter;
this.context = context;
this.category_name = category_name;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, int i) {
if (viewHolder instanceof ViewHolder){
}
getMyCategoryAdapter1 = getMyCategoryAdapter.get(i);
((ViewHolder) viewHolder).tv_categorytitle.setText(getMyCategoryAdapter1.getC_name());
((ViewHolder) viewHolder).tv_categoryid.setText(getMyCategoryAdapter1.getC_id());
((ViewHolder) viewHolder).gt= getMyCategoryAdapter1;
}
public void filterList(ArrayList<String> filterdNames) {
this.category_name = filterdNames;
notifyDataSetChanged();
}
}
}
【问题讨论】:
-
使用接口代替这个。
-
@HemantParmar 怎么样?请详细说明..实际上我是 android 新手
-
你能显示你的片段代码吗?
-
@payal_suthar 是
category_name某处声明为静态的?
标签: android android-fragments android-recyclerview fragment searchview