等待ListAdapter完成,以便我可以应用过滤器

时间:2019-08-13 08:14:05

标签: android android-jetpack 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()完成其所有绑定并正确使用结果的可能方法是什么?

1 个答案:

答案 0 :(得分:1)

在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

编辑:如果我对您的问题理解有误,请分享您的适配器和活动代码