为什么隐藏了DialogPreference.needInputMethod()?

时间:2016-08-03 07:42:01

标签: java android javadoc android-preferences

根据DialogPreference.java

  

返回首选项是否需要在对话框中显示软输入法   被展示。默认值为false。如果需要,子类应覆盖此方法   软输入法自动调出。

但是,它具有@hide标记,并且在SDK中不可见。然而,DialogPreference的子类仍然实现它:

我的问题:

  1. 为什么有@hide
  2. 如果我正在展开DialogPreference并希望显示软键盘,我应该实施吗?

1 个答案:

答案 0 :(得分:3)

作为一般经验法则,不应该实现隐藏的API。 原因可能是API正在开发中并且可能会被更改,API仅供内部使用,不稳定等...

在这种情况下,你是对的,EditTextPreference.java类直接调用这个方法,但你不应该断定这意味着其他子类也应该这样做。

事实上,如果您检查将此方法添加到类的开发人员的提交消息,您会看到:

  

变更集:1d458570757e607f0dc11fb0e963017916ac0701

     

摘要:在 EditTextPreferences 对话框中自动显示键盘

     

用户:...

     

日期:9月15日星期二19:25:51 CEST2009

因此,似乎这种方法意图由EditTextPreferences使用,而不是由其他人使用。