android - 如何在 Android Studio 中按下按钮时显示回收站视图?
问题描述
我正在尝试在我的应用程序中包含搜索功能。因此,当用户按下搜索按钮时,结果会显示在回收站视图中。但是当用户按下按钮时,会E/RecyclerView: No adapter attached; skipping layout
弹出错误。在onCreate()
方法中直接加载回收器没有错误。如何解决这个问题?活动代码为:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
binding = ActivitySearchBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
binding.searchButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
search_start();
}
});
}
private void search_start(){
binding.recyclerView.setLayoutManager(new LinearLayoutManager(this));
binding.recyclerView.setHasFixedSize(true);
PagedList.Config config = new PagedList.Config.Builder()
.setEnablePlaceholders(false)
.setPrefetchDistance(2)
.setPageSize(5)
.build();
Query mQuery;
mQuery = FirebaseFirestore.getInstance().collection("tests");
FirestorePagingOptions<SearchItem> options = new FirestorePagingOptions.Builder<SearchItem>()
.setLifecycleOwner(this)
.setQuery(mQuery, config, SearchItem.class)
.build();
adapter = new SearchAdapter(options);
binding.recyclerView.setAdapter(adapter);
}
解决方案
只需在OnCreate()中设置适配器并在其中发送一个空列表
adapter = new SearchAdapter(options);
binding.recyclerView.setAdapter(adapter);
在您的适配器中创建一个 setList() 函数
void setList(FirestorePagingOptions<SearchItem> options){
this.options = options;
}
并在搜索按钮 ClickListener() 上设置列表
adapter.setList(options)
推荐阅读
- c# - C#:如何在 Blazor Wasm 托管中将动态 Razor 组件从服务器发送到客户端?
- angular - 如何在 Angular 中返回上一页?
- python - 将行转换为 DateTime DataTypes Pandas Dataframe
- python - json文件的消失部分
- python - 使用 apply 计算大量附加列 pandas 数据框
- html - 想要创建一个公共框但只显示一行文本?
- graphql - 在 Cypress 命令中使用 Graphql 突变
- javascript - for循环递增是减少给定值而不是递增它
- ebpf - XDP 和 sk_buff
- aframe - aFrame 旋转文本