最初我想创建一个库来轻松更改区域设置,而无需重新创建活动以使更改生效
为此,我希望将resId
setText(int resId)
方法存储在变量中,以便通过此ID从另一个区域设置重新设置文本。
问题是TextVIew中的setText(int resId)
为final
。
所以我的问题是,如果有一种方法可以覆盖最终方法(我认为没有),或者添加一些钩子,那么无论何时调用此方法,我都能得到这个resId
?
我还要添加我尝试过的内容:
首先我考虑使用InvocationHandler
,因此我可以创建TextView
的实例作为我的类的字段,并将除setText
之外的所有调用传递给它。但不幸的是我无法在构造函数中返回任何内容
然后我考虑通过创建一个扩展View
的类来实现一个Decorator模式,并拥有TextView
所拥有的所有方法,并创建一个TextView
的实例作为我的类的一个字段,同样地传递所有方法调用它,但它不应该有两个原因:
TextView
的实例才行,因为我的类不会扩展TextView