删除回收器视图中的项目不会反映下一个活动中的更改



我正在尝试删除回收器视图中的卡。问题是当我单击卡片中的删除按钮时,更改不会反映下一个活动。当我单击删除按钮时,文本视图和图像视图必须相应地更改。但这并没有发生。

这是我在viewHolder中的点击。我用过界面。:

      public void onClick(View view)
    {
        //get data from array list
        if(view.getId()==R.id.cont_root){
            if(itemClickCallback!=null) {
                itemClickCallback.onRootClick(getAdapterPosition());
            }
        }
        else{
            delete(getAdapterPosition());
        }
    }
}

这是我在适配器中的删除方法:

public void delete( int position){
    listData.remove(position);
    notifyItemRemoved(position);
    notifyItemRangeChanged(position, getItemCount()-1);
}

这是我点击卡片视图时的代码。卡的名称是根。

    public void onRootClick(int p) {
    //adapter.setItemClickCallback(this);
    adapter.notifyItemChanged(p);
    ListItem item =(ListItem)listData.get(p);
    Intent i = new Intent(this,SecondActivity.class);
    Bundle extras=new Bundle();
    extras.putString(EXTRA_QUOTE, item.getTitle());
    extras.putInt(EXTRA_ATTR,item.getImageResID());
    i.putExtra(BUNDLE_EXTRAS,extras);
    startActivity(i);
}

注意:我没有使用接口方法来删除元素。

请帮忙。我是Recyclerview的新手。:(

您必须使用与"用户看到的内容"相关的方法,我可以称它们为(布局侧方法(,它们是:

  • getLayoutPosition((
  • findViewHolderForLayoutPosition(int(

第一个根据布局本身而不是适配器返回视图位置第二个返回数据集给定位置的项目的 ViewHolder

在您的代码中,您正在使用我可以调用的内容(适配器端方法(

  • getAdapterPosition((

使用(适配器端方法(的任何更改都不会反映到布局中,直到您使用(布局端方法(

希望这有帮助

最新更新