如何覆盖RecyclerView Adapter的notifyDataSetChanged,notifyItemChanged ...方法

时间:2015-12-18 07:03:31

标签: android android-recyclerview recycler-adapter

作为标题。 我正在编写一个支持多选模式的自定义RecyclerView。我需要跟踪每个项目的选定/未选择状态。因此,在RecyclerView的数据大小发生变化之后。我想更新跟踪状态列表的大小。 但我不知道在哪里重写方法:notifyDataSetChanged,notifyItemChagned ....

4 个答案:

答案 0 :(得分:18)

正如之前的答案已经正确陈述。您不能因为这些方法最终

我在实施FastAdapter

时遇到了同样的情况

我提出的唯一解决方案是将这些方法命名为略有不同。 notifyDataSetChanged - > notifyAdapterDataSetChanged https://github.com/mikepenz/FastAdapter/blob/develop/library/src/main/java/com/mikepenz/fastadapter/FastAdapter.java#L1354

public void notifyAdapterDataSetChanged() {
    //... your custom logic
    notifyDataSetChanged();
}

对于库来说,改进关于这一点的文档是非常重要的,但它是目前唯一的解决方案。

答案 1 :(得分:6)

你不能,因为final RecyclerView.Adapter overrideBaseAdapter

ListView可以@Override public void notifyDataSetChanged() { // TODO Auto-generated method stub super.notifyDataSetChanged(); } 使用int socketTimeout = 10000; //10 seconds - change to what you want RetryPolicy policy = new DefaultRetryPolicy(socketTimeout, DefaultRetryPolicy.DEFAULT_MAX_RETRIES, DefaultRetryPolicy.DEFAULT_BACKOFF_MULT); postRequest.setRetryPolicy(policy);

fn fx(x: i32) -> i32
{
    x
}

fn test_Functor()
{
    // case 1. Initialization
    let myFunctor: &Fn(i32) -> i32 = &fx ;

    // case 2. Assignment
    //let myFunctor: &Fn(i32) -> i32;
    //myFunctor= &fx ;

}

答案 2 :(得分:1)

将适配器注册为RecyclerView.Adapter的观察者。

->refrences('id')

答案 3 :(得分:0)

你不能因为 你无法覆盖最终方法