【发布时间】:2020-06-30 03:20:49
【问题描述】:
我正在尝试在我的应用中包含搜索功能。因此,当用户按下搜索按钮时,结果会显示在回收站视图中。但是当用户按下按钮时,会弹出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() 方法中直接加载回收器没有错误。”。错了,当您创建活动时,您的适配器尚未设置适配器。单击按钮时会设置 recyclerview
标签: android android-studio android-recyclerview