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. 一个可以保存额外数据的 TextView (userId)
  2. 具有相同默认行为的 TextView 类
  3. 可以通过 ListAdapter 轻松创建和管理

我只是觉得我从未见过这样做过,并且怀疑我缺少一些东西。

4

1 回答 1

0

据我所知,对于一个类的每个实例,所有非静态的东西都在内存中。这意味着通过这种设计,您的代码既漂亮又干净,但外观和内存使用并没有什么不同。

于 2012-04-20T08:51:26.180 回答