如何从片段的回收器视图 ViewHolder 类更新活动中的文本视图



每当从活动类中删除recyclerview项时,我在更新textview时遇到问题。getActivity()在此处不可用。提前感谢伙计们。

public class ViewHolder extends RecyclerView.ViewHolder {
ImageView delete_from_cart;
public ViewHolder(final View itemView) {
super(itemView);
delete_from_cart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// here I want to change the textview
DatabaseHelper dh = new DatabaseHelper(context);
dh.deleteCartDetail(product_name.getText().toString());
delete(getLayoutPosition());
}
});
}
}

可以有不同的方法来实现这一点。下面是一些。

  1. 使用接口回调,该回调将在Adapter类的构造函数中传递。(最符合您的要求。(
  2. Adapter类中传递活动引用,并调用activity方法来更新textview。类似activity.updateText()
  3. 您可以使用EventBus。它可以在你的应用程序中进行通信
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder>{
public interface MyCallback{
public void updateText(String text);
}
final private MyCallback callback;
public MyAdapter(MyCallback callback){
this.callback = callback;
}

... Some Other code
delete_from_cart.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// Do other stuff
callback.updateText("some text");
}
});
}
public class MyActivity extends Activity implements MyCallback{
@Override
public void updateText(String someText){
myTextView.setText(someText);
}
}

最新更新