1

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()メソッドを呼び出してリスナーを変更できます。

それは私が必要とするものにうまく適合しているようです:

  1. 追加データ (userId) を保持できる TextView
  2. 同じデフォルトの動作を持つ TextView クラス
  3. ListAdapter で簡単に作成および管理できます

私はこれがこのように行われたのを見たことがないと感じており、何かが欠けているのではないかと疑っています.

4

1 に答える 1