android - 等待 ListAdapter 完成,以便我可以应用过滤器
问题描述
现在,我通过绑定获得了一些值来使用以下列表适配器填充 recyclerView:
private val otrosSubmitListAdapter = OtrosSubmitListAdapter()
[more code]
binding.otrosRequestList.adapter = otrosSubmitListAdapter
问题是我想,当所有值都被绑定后,然后与其他一些值合并,我想在一个名为 DummyContent.ITEMS 的变量中进行合并,我稍后会放置一个新的 filterAdapter 并使用它我的 recyclerview 的适配器,如下所示:
dataArray = DummyContent.ITEMS
filter_adapter = MyFilterAdapter(this.activity, dataArray)
recyclerView.adapter = filter_adapter
问题是我无法掌握等待的方法,因此 OtrosSubmitListAdapter() 已完成其所有内部绑定并且我可以正确获取其值,现在通过使用此代码 DummyContents 永远不会合并 OtrosSubmitListAdapter() 所需的值,所以只有它的其他值可以正确显示。
等待 OtrosSubmitListAdapter() 完成所有绑定并正确使用结果的可能方法是什么?
解决方案
在您的 OtrosSubmitListAdapter 中创建一个回调,如下所示:
public interface AdapterCallback {
void itemsBound();
}
将其添加到您的活动中
public class MainActivity extends AppCompatActivity implements AdapterCallback
在初始化时将 AdapterCallback 的引用传递给 OtrosSubmitListAdapter
在您的适配器上
AdapterCallback adapterCallback;
public OtrosSubmitListAdapter(AdapterCallback adapterCallback){
this.adapterCallback = adapterCallback;
}
@Override
public void onBindViewHolder(final OtrosSubmitListAdapter.MyViewHolder holder, final int position) {
if (position == itemList.size() - 1){
adapterCallback.itemsBound();
}
}
关于你的活动
private val otrosSubmitListAdapter = OtrosSubmitListAdapter(this)
@Override
public void itemsBound() {
//enter code here
}
有关适配器回调示例,请参见https://stackoverflow.com/a/32032990/11881779
编辑:如果我理解你的问题是错误的,请分享你的适配器和活动的代码
推荐阅读
- opencv - 如何使用 protobuf 序列化 cv::Mat 对象?
- java - 从 SSRS 调用 url 时在 java web 上进行身份验证
- html - 如果存在 div,则两个 HTML 表格的对齐问题
- r - 如何使用字符串向量在 R 中使用 dplyr mutate 进行字符串匹配
- grapesjs - 使用 GrapesJs API 存储管理器的自定义 StorageManager
- android - 搜索视图输入文本颜色
- java - JavaFX 应用程序上的视频颜色错误(Gluon JavaFX 端口)
- matlab - Matlab:创建n次特征的多项式组合。
- ios - started.FATAL:日志语句不同步:当前测试套件“TestTarget.xctest”不存在
- dart - 如何使用 JSON 数据列表创建 DropdownButton,我希望它在 Flutter 中填充我的 DropDownButton