2017-04-09 51 views
0

我試圖刪除擁有recyclerview的卡。問題是當我點擊我的卡片中的刪除按鈕時,這些更改並未反映下一個活動。當我點擊刪除按鈕時,textview和imageview必須相應地改變。但是這並沒有發生。刪除recyclerView中的項目並不反映下次活動的更改

這是我在viewHolder中的onclick。我用過Interface。 :

 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); 
} 

這是當一個Cardview點擊.Card的名字我的代碼是根。

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); 

} 

注:我沒有使用接口方法刪除元素。

請幫助。 Iam新增Recyclerview。 :(

回答

0

你必須使用這涉及到 「什麼用戶正在觀看的」 Methodes我可以打電話給他們(佈局端的方法),他們分別是:

  • getLayoutPosition()
  • findViewHolderForLayoutPosition (INT)

第一個返回根據到佈局它自我而不是適配器 和S的觀察位置的Econd一個返回ViewHolder在數據上的預定位置設置

在你的代碼使用的是什麼,我可以打電話(適配器端的方法)

  • getAdapterPosition()
  • 項目

任何使用(適配器端的方法)的變化不會反映到佈局,直到你使用(佈局端的方法)

希望這可以幫助

+0

我該如何在同一時間使用它們?因爲我需要在我的適配器中更改值。 –

相關問題