我实施了一个搜索视图,从回收站视图中搜索并相应地更新回收站。当它与任何项目不匹配时,我显示另一个布局“无记录”并将回收站视图可见性设置为GONE。假设回收者视图包含标题为“判断”的项目,当我输入前两个字母“ju”时,它会在顶部更新回收者视图。
现在的问题是:
搜索视图方法
@Override
public boolean onQueryTextChange(String query) {
newsListAdapter.getFilter().filter(query);
if (newsListAdapter.getItemCount() > 0) {
listRecyclerView.setVisibility(View.VISIBLE);
noRecord.setVisibility(View.GONE);
} else {
listRecyclerView.setVisibility(View.GONE);
noRecord.setVisibility(View.VISIBLE);
}
return false;
}
适配器的过滤方法
@Override
public Filter getFilter() {
return new Filter() {
@Override
protected FilterResults performFiltering(CharSequence charSequence) {
String charString = charSequence.toString();
if (charString.isEmpty()) {
filteredNewsList = newsList;
} else {
List<News.ArticlesBean> filteredList = new ArrayList<>();
for (News.ArticlesBean row : newsList) {
if (row.getTitle().toLowerCase().contains(charString.toLowerCase())) {
filteredList.add(row);
}
}
filteredNewsList = filteredList;
}
FilterResults filterResults = new FilterResults();
filterResults.values = filteredNewsList;
return filterResults;
}
@Override
protected void publishResults(CharSequence charSequence, FilterResults filterResults) {
filteredNewsList = (ArrayList<News.ArticlesBean>) filterResults.values;
notifyDataSetChanged();
}
};
}
这很有效
@Override
public boolean onQueryTextChange(String query) {
Filter.FilterListener listener = new Filter.FilterListener() {
@Override
public void onFilterComplete(int count) {
if (newsListAdapter.getItemCount() <=0) {
listRecyclerView.setVisibility(View.GONE);
noRecord.setVisibility(View.VISIBLE);
} else {
listRecyclerView.setVisibility(View.VISIBLE);
noRecord.setVisibility(View.GONE);
}
}
};
newsListAdapter.getFilter().filter(query, listener);
return false;
}
我想这是关于你的系统操作系统的android studio的动态内存分配。你介意提一下你的系统配置吗?如果它低于4GB和i3-3rd,它将使你的系统滞后。 Android Studio需要最低8GB的RAM,以及您可以在各自的文档中找到的其他内容。