Android 从另一个适配器刷新recyclerview适配器的值
我必须在一个活动中使用两个具有不同适配器的数据集,我想使用Android 从另一个适配器刷新recyclerview适配器的值,android,notifydatasetchanged,Android,Notifydatasetchanged,我必须在一个活动中使用两个具有不同适配器的数据集,我想使用notifydatasetchange()但是它不适用于另一个适配器。因此,在我的adapterFirst类中,我有longclicklinklistener,它正在使用notifyDataSetChanged(),我想调用adapterSecond来通知adapterFirst是否更新。按下长按时,适配器秒数据不会更新 public class AdapterFirst extends RecyclerView.Adapter <
notifydatasetchange()
但是它不适用于另一个适配器。因此,在我的adapterFirst
类中,我有longclicklinklistener
,它正在使用notifyDataSetChanged()
,我想调用adapterSecond
来通知adapterFirst是否更新。按下长按时,适配器秒数据不会更新
public class AdapterFirst extends RecyclerView.Adapter <AdapterFirst .ViewHolder> {
private List<Object> objectList;
private Context mContext;
AdapterSecond adapterSecond;
public AdapteFirst(List<Object> list) { objectList= list; }
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_list, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(final ViewHolder holder, int position) {
holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {
@Override
public boolean onLongClick(View v) {
//query method
notifyDataSetChanged(); //working
//here it gets the nullpointerexception error
adapterSecond = new AdapteSecond();
adapterSecond.notifyDataSetChanged();
}
});
}
@Override
public int getItemCount() {
return (objectList != null? objectList.size():0);
}
public class ViewHolder extends RecyclerView.ViewHolder {
public TextView data;
public ViewHolder(View itemView) {
super(itemView);
data= (TextView) itemView.findViewById(R.id.text);
}
}
}
公共类适配器首先扩展了RecyclerView.Adapter{
私有列表对象列表;
私有上下文;
适配器秒适配器秒;
public AdapteFirst(List){objectList=List;}
@凌驾
public ViewHolder onCreateViewHolder(视图组父级,int-viewType){
View=LayoutInflater.from(parent.getContext())
.充气(R.layout.item_列表,父项,假);
返回新的ViewHolder(视图);
}
@凌驾
公共无效onBindViewHolder(最终ViewHolder,内部位置){
holder.itemView.setOnLongClickListener(新视图.OnLongClickListener(){
@凌驾
仅长按公共布尔值(视图v){
//查询方法
notifyDataSetChanged();//正在工作
//这里它得到了nullpointerexception错误
adapterSecond=新的adapterSecond();
adapterSecond.notifyDataSetChanged();
}
});
}
@凌驾
public int getItemCount(){
返回(objectList!=null?objectList.size():0);
}
公共类ViewHolder扩展了RecyclerView.ViewHolder{
公共文本视图数据;
公共视图持有者(视图项视图){
超级(项目视图);
data=(TextView)itemView.findViewById(R.id.text);
}
}
}
适配器秒
public class AdapterSecond extends
RecyclerView.Adapter <AdapterSecond.ViewHolder> {
private List<Object> objectList;
private Context mContext;
public AdapterSecond () {}
public AdapterSecond (List<Object> list) { objectList= list; }
@Override
public AdapterSecond.ViewHolder onCreateViewHolder(ViewGroup parent,
int viewType) {
View view = LayoutInflater.from(parent.getContext())
.inflate(R.layout.item_list_2, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(final AdapterSecond.ViewHolder holder, int position) {
final Object object = objectList.get(holder.getAdapterPosition());
holder.data2.setText(object.getData());
}
@Override
public int getItemCount() {
return (objectList != null? objectList.size():0);
}
public class ViewHolder extends RecyclerView.ViewHolder {
public TextView data2;
public ViewHolder(View itemView) {
super(itemView);
data2= (TextView) itemView.findViewById(R.id.text2);
}
}
}
公共类适配器第二次扩展
RecyclerView.适配器{
私有列表对象列表;
私有上下文;
公共适配器秒(){}
公共适配器第二(列表){objectList=List;}
@凌驾
公共适配器Second.ViewHolder onCreateViewHolder(视图组父级,
int视图类型){
View=LayoutInflater.from(parent.getContext())
.充气(R.layout.item_list_2,父项,假);
返回新的ViewHolder(视图);
}
@凌驾
BindViewHolder上的公共无效(最终适配器Second.ViewHolder,内部位置){
final Object=objectList.get(holder.getAdapterPosition());
holder.data2.setText(object.getData());
}
@凌驾
public int getItemCount(){
返回(objectList!=null?objectList.size():0);
}
公共类ViewHolder扩展了RecyclerView.ViewHolder{
公共文本视图数据2;
公共视图持有者(视图项视图){
超级(项目视图);
data2=(TextView)itemView.findViewById(R.id.text2);
}
}
}
适配器的初始化顺序似乎有一些问题
只需确保已在第一个适配器之前初始化第二个适配器
secondAdapter= new SecondAdapter();
firstAdapter = new FirstAdapter();
只需检查它们初始化的顺序 张贴整个代码plz@HeshanSandeepa更新了编码,也可以发布日志