私は知っています。静的ビューのホルダーパターン。では、この静的なViewholder内のonClickのパターンは何ですか?
public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener
静的なViewHolderが推奨されます。
ViewHolderコンストラクタのonClick()もonBind()メソッドの代わりに推奨されています。今
public ViewHolder(View v){
super(v);
v.setOnClickListener(this);
}
が、我々は、内側のonClickを(知っている)静的ViewHolderクラスで
public static class ViewHolder extends RecyclerView.ViewHolder implements View.OnClickListener{
public ViewHolder(View v){
super(v);
v.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Log.d(TAG, "position = " + getAdapterPosition());
}
とは、すべてこの勧告の後に私の質問です。
このリサイクラーとnotifiアダプターのリストからアイテムを削除したいとしたらどうするのがいいでしょう。
私のリストは静的でなければなりません。 しかし、内部のonClick()でもnotifyDataSetChanged()は使用できません。
この場合の推奨事項はありますか?パターン?有用な例は素晴らしいでしょう。 あなたのプロジェクトでこれをどうやってやっていますか?
thx!
私のViewHolderが静的でない場合、私はあなたのように同じことをしています。だから私のために良い方法。しかし、ViewHolder(Googleの例https://developer.android.com/training/improving-layouts/smooth-scrolling.htmlなどのイベント)の暗黙的な参照を避けるため、これは静的であるべきであると私は読んだ。静的で非静的なViewHolderを使用してパフォーマンスをテストする必要があります。とにかくあなたの説明のためのthx! – Esperanz0
でも、ビューホールダーを静的に保つことができます。あなたはonbindviewholder()内でリスナーを登録することができます。 –
とデータセットリストを静的にすると、メモリリークも発生します。 –