Android 如何从片段';s recyclerview ViewHolder类
每当从活动类中删除Android 如何从片段';s recyclerview ViewHolder类,android,android-recyclerview,Android,Android Recyclerview,每当从活动类中删除recyclerview项时,我在更新活动类中的textview时遇到问题getActivity()在此处不可用。先发制人,伙计们 public class ViewHolder extends RecyclerView.ViewHolder { ImageView delete_from_cart; public ViewHolder(final View itemView) { super(itemView); dele
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());
}
});
}
}
可以有不同的方法来实现这一点。下面是一些
适配器
类中传递活动引用,并调用活动方法来更新textview。比如activity.updateText()
李>
请尝试interface/broadcastreceiver/eventbus,然后单击ActivityGetLayoutPosition()>>getAdapterPosition()的回调,通过适配器构造函数传递
context
referent。@KhaledLela不使用上下文。请检查我的答案,其中显示了如何使用@Khermraj answer提到的回调更新活动。
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);
}
}