TextView をサブクラス化して、追加のデータを保持する必要があります。カスタム ListAdapter を使用して、これらの新しい View オブジェクトを ListView に配置しています。
実行したいアクションがonClick()
あり、追加データに基づいて、ListView のすべての要素に対して同じアクションです。
この定義にはマイナス面や問題がありますか?
public class UserTextView extends TextView implements OnClickListener {
public int userId;
public UserTextView(Context context) {
super(context);
this.setClickable(true);
this.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
}
私のonClick()
実装のコードは実際にはコピーされず、メモリ内に一度だけ存在し、特定UserTextView
の のデータで呼び出されると予想します。したがって、余分なメモリ使用量は期待できません。実際、追加のクラスとオブジェクト (匿名であろうとなかろうと) を持たないことで、パフォーマンスが向上する可能性があります (ただし、実際には意味のある方法ではありません)。
特定のオブジェクトに対して別の動作が必要な場合は、必要に応じてsetOnClickListener()
メソッドを呼び出してリスナーを変更できます。
それは私が必要とするものにうまく適合しているようです:
- 追加データ (userId) を保持できる TextView
- 同じデフォルトの動作を持つ TextView クラス
- ListAdapter で簡単に作成および管理できます
私はこれがこのように行われたのを見たことがないと感じており、何かが欠けているのではないかと疑っています.