设置文本时TextView保存资源ID

时间:2018-04-06 11:38:55

标签: java android reflection textview

最初我想创建一个库来轻松更改区域设置,而无需重新创建活动以使更改生效 为此,我希望将resId setText(int resId)方法存储在变量中,以便通过此ID从另一个区域设置重新设置文本。

问题是TextVIew中的setText(int resId)final

所以我的问题是,如果有一种方法可以覆盖最终方法(我认为没有),或者添加一些钩子,那么无论何时调用此方法,我都能得到这个resId

我还要添加我尝试过的内容:

首先我考虑使用InvocationHandler,因此我可以创建TextView的实例作为我的类的字段,并将除setText之外的所有调用传递给它。但不幸的是我无法在构造函数中返回任何内容 然后我考虑通过创建一个扩展View的类来实现一个Decorator模式,并拥有TextView所拥有的所有方法,并创建一个TextView的实例作为我的类的一个字段,同样地传递所有方法调用它,但它不应该有两个原因:

  1. 方法需要TextView的实例才行,因为我的类不会扩展TextView
  2. TextView的实现长度为11969行,复制所有方法需要花费很多时间。

0 个答案:

没有答案