如何从 java 中的适配器刷新 Activity

How to refresh an Activity from an Adapter in java

当用户更新所选商品的数量时,我必须通过刷新 activity 来更新购物车中所选商品的总价 activity

总价方法在 MainActivity 中,而选择的购物车项目在 RecyclerView 中

只想从适配器

刷新一个activity
public class Cart extends AppCompatActivity {

......

public void refreshActivtiy(){
            recreate();
    }
}

//适配器

public class CartAdapter extends RecyclerView.Adapter<CartAdapter.CartViewHolder> {

    public void onBindViewHolder(@NonNull final CartAdapter.CartViewHolder holder, final int position) {

Cart cart = new Cart();
cart.refreshActivity();
}
}

不工作!!!

您可以在适配器中创建一个接口,您需要在 Activity 中实现该接口。

在你的适配器中试试这个:

public class CartAdapter(AdapterInteractions listener) extends RecyclerView.Adapter<CartAdapter.CartViewHolder> {

    interface AdapterInteractions {
        public void refreshActivity();
    }

    public void onBindViewHolder(@NonNull final CartAdapter.CartViewHolder holder, final int position) {
        ...
        listener.refreshActivity();
    }
}

正在您的 activity 中实现接口:

public class Cart extends AppCompatActivity implements AdapterInteractions {

     ....
     @Override   
     public void refreshActivity(){  
         recreate();
     } 
}

解决方案

((Cart)context).refreshActivtiy();