如何从 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();
当用户更新所选商品的数量时,我必须通过刷新 activity 来更新购物车中所选商品的总价 activity
总价方法在 MainActivity 中,而选择的购物车项目在 RecyclerView 中
只想从适配器
刷新一个activitypublic 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();