2017-04-09 14 views
0

recyclerviewのカードを削除しようとしています。問題は、カードの削除ボタンをクリックしたときに変更が次のアクティビティに反映されないことです。削除ボタンをクリックすると、テキストビューとイメージビューがそれに応じて変更される必要があります。しかし、それは起こっていません。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()); 
     } 

    } 
} 

これは、アダプタの私のdeleteメソッドです:

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

} 

注:私は要素を削除するためのインターフェイスメソッドを使用していません。

助けてください。私はRecyclerviewを初めて使用しました。 :(

答えて

0

あなたは "何をユーザーに見ている" に関連するMethodesを使用する必要があり、私は彼ら(レイアウト側のメソッド)を呼び出すことができ、それらは以下のとおりです。

  • getLayoutPosition()
  • findViewHolderForLayoutPosition (INT)

最初のレイアウト、それは自己としないアダプタ およびsに応じて視点位置を返しますecondの一つは

  • getAdapterPosition()
  • あなたは、私が(アダプタ側のメソッド)を呼び出すことができるものを使用しているあなたのコードでは

    を設定し、データの指定された位置にある項目のためViewHolderを返します。

あなたは(レイアウト側のメソッド)を使用刚性(アダプタ側のメソッド)を使用して、すべての変更は、レイアウトに反映されません

希望するこれは役に立ちます

+0

どのように私はそれらの両方を同時に使用するのですか?私のアダプタの値も変更する必要があるからです。 –

関連する問題