- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试在我的应用程序中实现搜索功能,但我遇到了问题。
例如,当我搜索 yellow flowers 时,我找到了 200 个结果,我将 200 个存储在 NumberWalls 变量中,以使适配器在 中仅显示 200 个项目>RecyclerView
。一切正常,我的问题是当我搜索例如 Google Picture 时,我找到了 4 个结果,当我再次搜索 yellow flowers 时,我在 RecyclerView
上只看到 4 个项目,而不是 200 个。
private void setAdapterForRecyclerView(List<Wallpaper> wlls, int NumberWalls) {
if (myAdapter == null) {
errortv.setVisibility(View.GONE);
myAdapter = new MyAdapterSearch(wlls, getApplicationContext(), new RecyclerViewClickListener() {
@Override
public void onClick(View view, Wallpaper wallpaper) {
Intent intent = new Intent(Search.this, FullScreen.class);
intent.putExtra("img", wallpaper.getThumbnails());
intent.putExtra("tags", wallpaper.getTitle());
startActivity(intent);
}
@Override
public void onClick(View view, Category categories) {
}
}, (NumberWalls));
recyclerView.setAdapter(myAdapter);
} else {
int position = myAdapter.getItemCount();
myAdapter.getItems().addAll(wlls);
myAdapter.notifyItemRangeInserted(position, NumberWalls);
}
progressbar.setVisibility(View.GONE);
}
在适配器中:
public MyAdapterSearch(List<Wallpaper> wallpapers, Context context, RecyclerViewClickListener clickListener, int numberItem) {
this.wallpapers = wallpapers;
this.context = context;
this.mClickListener = clickListener;
this.numberItem = numberItem;
}
.
.
.
@Override
public int getItemCount() {
return Math.min(wallpapers.size(), numberItem);
}
这是我得到 NumberWalls 的 AsyncTask
类:
public class fetchDataSearch extends AsyncTask<Integer, List<Wallpaper>, List<Wallpaper>> {
Document doc = null;
ArrayList<Wallpaper> urlsSearch = new ArrayList<>();
String numberOnly;
@Override
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected List<Wallpaper> doInBackground(Integer... integers) {
try {
doc = Jsoup.connect(getResources().getString(R.string.SearchRequest) + mSearchText.replace(" ", "+") + "&page=" + integers[0]).get();
} catch (IOException e) {
e.printStackTrace();
}
if (doc != null) {
Element noResultfound = doc.getElementsByClass("notice notice-error").first();
if (noResultfound != null) {
noResultsFoundCatched = true;
} else {
Element element = doc.select("div.center > h1").first();
numberOnly = element.text().replaceFirst(".*?(\\d+).*", "$1");
Elements newsHeadlines = doc.getElementsByClass("img-responsive");
for (Element headline : newsHeadlines) {
String thumb = headline.select("img").attr("src");
String title = headline.select("img").attr("title");
Wallpaper wallpaperInfo = new Wallpaper();
wallpaperInfo.setThumbnails(thumb);
wallpaperInfo.setTitle(title);
if (BooleanChecker.checkTagsContains(title)) {
urlsSearch.add(wallpaperInfo);
} else {
unWantedTagsFound++;
}
}
noResultsFoundCatched = false;
}
} else {
noResultsFoundCatched = true;
}
return urlsSearch;
}
@Override
protected void onPostExecute(List<Wallpaper> wallpapersSearch) {
super.onPostExecute(wallpapersSearch);
if (numberOnly != null) {
numberWallpapersPage = Integer.parseInt(numberOnly);
setAdapterForRecyclerView(wallpapersSearch, numberWallpapers);
}
}
}
最佳答案
我认为您可以删除 numberItem
东西,让 getItemCount()
简单地返回 wallpapers.size()
。因为,您要为适配器提供搜索返回的壁纸列表,所以我猜您想在列表中显示所有壁纸。
另外,更新适配器时,不是将搜索结果添加到项目列表,而是将结果设置为项目。
myAdapter.setWallpapers(wlls);
并将方法 setWallpapers()
添加到适配器:
public void setWallpapers(List<Wallpaper> wallpapers) {
this.wallpapers = wallpapers;
notifyDatasetChanged();
}
关于android - 更新 Recyclerview 的项目数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53140294/
driver.get("https://www.yahoo.com/"); driver.manage().timeouts().implicitlyWait(5, TimeUnit.SECONDS)
原始 DataFrame 只有 1 列元组。我想添加一列,其中包含每个元组中的项目数(长度)。 ITEMS 0 (EGG, WATER, TOMATOE) 1 (MILK
我有一个包含这些部分的 ListView。当有一个部分时,它就会取代另一个部分。也就是说,如果 ListView 项目计数为 30,则该部分将取代第一段,结果显示只有 29 点。 这里有一张图,很清楚
这个问题在这里已经有了答案: parsing nested parentheses in python, grab content by level (4 个答案) 关闭 4 年前。 我想提取与 a
我决定使用 Gwan 的 KV 存储来代替 Redis NoSQL 数据库。我在手册中看到,kv 支持文件 IO 的持久标志,以在重新启动之间保留我猜的数据。它使用回调recfn,但是这个函数究竟如何
我现在正在学习 swift。我在我的 swift 代码中使用了 ANetworking (Obj C 中的库)。我已经成功返回解析后的 JSON。但是我想找到返回的 json 项目的数量。这是我到目前
我正在重复这样的 JSON 对象(嵌套)项目列表: {{specific}} 我想在页面顶部的每个项目对象中显示“特定”项目的数量(在 ng-repeat 范围之外)。我无
我目前有 8 个 UITabBar 项目,所有这些项目都可以在“更多” View 中进行编辑。我的问题是,允许的标签栏项目的绝对最大数量是多少? 我理解5是一次最多可见的;我正在寻找您能拥有的最长月经
如果我在 DynamoDB 中扫描或查询,则可以设置 Limit属性(property)。 DynamoDB documentation说如下: The maximum number of items
我想知道的是我们如何在 Angular js 中获取项目的 ng-repeat 计数。从下面的代码中,我想获得技能的数量,因为我想对其进行限制。如果 skill count > 5 将 skill 限
我在日志中收到此异常 - java.lang.IndexOutOfBoundsException: Invalid item position 0(0). Item count:0
我是一名优秀的程序员,十分优秀!