gpt4 book ai didi

java - 无法解析方法 getFilter() 方法

转载 作者:行者123 更新时间:2023-12-02 12:01:25 26 4
gpt4 key购买 nike

它显示相同的错误,但我尝试实现此功能。我不明白是什么造成了问题,因为它只是类中的另一个函数。我正在实现此功能,以将 SearchView 与 RecyclerAdapter 结合使用。我见过其他代码,但所有代码都以相同的类型实现。这是full code .

class ProductsRecyclerAdapter extends RecyclerView.Adapter<ProductsRecyclerAdapter.MyViewHolder> implements Filterable {

List<ProductEntity> productList = Collections.emptyList();
Context context;
List<ProductEntity> filteredProductList = Collections.emptyList();

public ProductsRecyclerAdapter(List<ProductEntity> productList, Context context) {
this.productList = productList;
this.context = context;
filteredProductList = productList;
}

public class MyViewHolder extends RecyclerView.ViewHolder {

TextView product_name;
ImageView product_image;
CardView product_catalog_card;
AVLoadingIndicatorView progress_ball_image ;

public MyViewHolder(View view) {
super(view);
product_name = view.findViewById(R.id.product_name);
product_image = view.findViewById(R.id.product_image);
product_catalog_card = view.findViewById(R.id.product_catalog_card);
progress_ball_image = view.findViewById(R.id.progress_ball_image) ;
}
}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext()).inflate(R.layout.product_entity_design, parent, false);
return new MyViewHolder(itemView);
}

@Override
public void onBindViewHolder(final MyViewHolder holder, final int position) {
holder.product_name.setText(productList.get(position).about);
holder.progress_ball_image.setVisibility(View.VISIBLE) ;
Picasso.with(context)
.load(productList.get(position).image.get(0).url)
.centerInside()
.resize(200, 200)
.memoryPolicy(MemoryPolicy.NO_STORE)
.into(holder.product_image, new Callback() {
@Override
public void onSuccess() {
holder.progress_ball_image.smoothToHide(); ;
}

@Override
public void onError() {

}
});
holder.product_catalog_card.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(v.getContext(), ProductDetail.class);
intent.putExtra("product", productList.get(position));
v.getContext().startActivity(intent);
}
});
}

@Override
public int getItemCount() {
return productList.size();
}

@Override
public Filter getFilter() {
return new Filter() {
@Override
protected FilterResults performFiltering(CharSequence charSequence) {
String charString = charSequence.toString();
if (charString.isEmpty()) {
filteredProductList = productList;
} else {
ArrayList<ProductEntity> filteredList = new ArrayList<>();
for (ProductEntity productEntity : productList) {
if (productEntity.about.toLowerCase().contains(charString)) {
filteredList.add(productEntity);
}
}
filteredProductList = filteredList;
}

FilterResults filterResults = new FilterResults();
filterResults.values = filteredProductList;
return filterResults;
}

@Override
protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
filteredProductList = (ArrayList<ProductEntity>) filterResults.values;
notifyDataSetChanged();
}
};
}
}

This is the error snapshot

最佳答案

Rahul Mishra,看,您已将变量 productsRecyclerAdapter 声明为 RecyclerView.Adapter,但您需要 ProductsRecyclerAdapter。更改变量的类型,它将起作用

关于java - 无法解析方法 getFilter() 方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47231758/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com