2016-08-18 3 views
0

removeメソッドからオブジェクトを削除する場合:時々getItemViewTypeの位置(INT位置)-1 iはrecylerview

public CustomObject remove(int adapterPos) { 
    CustomObject customObject = customObjects.remove(adapterPos); //arraylist of custom objects 
    notifyItemRemoved(adapterPos); 
    return customObject; 
} 

そしてgetItemViewType(int position)内部の位置ではなく、有効な位置の-1あります。

私はnotifyDataSetChanged();notifyItemRemoved(adapterPos);を変更した場合の問題は、それが時々動作しますが、また

を生じません。それが機能するとき、正しい項目が削除されます。

+0

何が問題なのですか?また、シナリオにログを追加して明瞭さを少し向上させることができますか? – sumandas

答えて

0

現在私の目の前にAndroidスタジオが開いていませんが、通常-1は無効なもののデフォルト値です。アイテムをRecyclerView.Adapterから削除し、そのビューのタイプを取得しようとすると、そのビューが有効でないことを示すはずです。 notifyDataSetChanged()に電話すると、アダプタはデータが変更されたことを通知し、更新する必要があるため、-1が表示されなくなります。

正に、この戻り値については心配しません。アイテムを削除すると、おそらくビュータイプを取得してはならないはずです。