Android 如何检查筛选的recyclerView结果是否为空?
实际上,我的recyclerView适配器中有一个筛选器方法,当arraylist中没有任何项时,recyclerView就会隐藏,我希望显示一个警报,而不是只显示任何项 如何检测筛选器何时返回未找到的项目 下面是来自适配器的筛选器方法Android 如何检查筛选的recyclerView结果是否为空?,android,android-recyclerview,Android,Android Recyclerview,实际上,我的recyclerView适配器中有一个筛选器方法,当arraylist中没有任何项时,recyclerView就会隐藏,我希望显示一个警报,而不是只显示任何项 如何检测筛选器何时返回未找到的项目 下面是来自适配器的筛选器方法 @Override public Filter getFilter() { return new Filter() { @Override protected FilterResult
@Override
public Filter getFilter() {
return new Filter() {
@Override
protected FilterResults performFiltering(CharSequence constraint) {
final FilterResults oReturn = new FilterResults();
final ArrayList<ItemModel> results = new ArrayList<>();
if (mFilteredList == null)
mFilteredList = new ArrayList<>(variantiConstructors);
if (constraint != null && constraint.length() > 0) {
if (mFilteredList != null && mFilteredList.size() > 0) {
for (final ItemModel cd : mFilteredList) {
if (cd.getCodiceArticolo().toLowerCase()
.contains(constraint.toString().toLowerCase()))
results.add(cd);
}
}
oReturn.values = results;
oReturn.count = results.size(); //newly Aded by ZA
} else {
oReturn.values = mFilteredList;
oReturn.count = mFilteredList.size(); //newly added by ZA
}
return oReturn;
}
@SuppressWarnings("unchecked")
@Override
protected void publishResults(final CharSequence constraint,
FilterResults results) {
variantiConstructors = new ArrayList<>((ArrayList<ItemModel>) results.values);
notifyDataSetChanged();
}
};
}
我没有检查result.values或result.count,而是检查variantiConstructor.isEmpty作为结果在任何情况下是否返回true 因此,在适配器中,我现在使用以下代码在未找到任何项时显示警报
protected void publishResults(final CharSequence constraint,
FilterResults results) {
variantiConstructors = new ArrayList<>((ArrayList<ItemModel>) results.values);
if(variantiConstructors.isEmpty()){
Alerts.alertError("NO","",mContext);
}
notifyDataSetChanged();
}
protectedvoid publishResults(最终字符序列约束,
FilterResults(结果){
variantiConstructors=新的ArrayList((ArrayList)results.values);
if(variantiConstructors.isEmpty()){
Alerts.alertError(“否”、“mContext”);
}
notifyDataSetChanged();
}
在publishResults()
函数中,您可以添加if
来检查结果。大小
。如果它等于0,则可以显示警报。否则,请更新您的RecycleServiceWtry以初始化筛选列表,并检查列表大小>0是否为空,以避免nullpointerException@cesarmarchresults.size不是一个函数。。我试图检查results.values,但什么都没有,它仍然计算所有项目
protected void publishResults(final CharSequence constraint,
FilterResults results) {
variantiConstructors = new ArrayList<>((ArrayList<ItemModel>) results.values);
if(variantiConstructors.isEmpty()){
Alerts.alertError("NO","",mContext);
}
notifyDataSetChanged();
}