【发布时间】:2015-01-02 16:47:33
【问题描述】:
作为我正在开发的应用程序的一部分,要求它必须下载包含需要在应用程序中使用的语言翻译的 JSON 文件,而不是常用的 strings.xml 文件,因为这样任何翻译可以通过在某些门户网站上更新外部 JSON 文件来更改应用程序,并且每次您想要更改语言翻译时都无需重新构建。
我已经这样做了,一切正常,如下所示: 例如,如果我在活动开始后在 xml 中有按钮,我可以引用该按钮并设置它的文本来自我在启动时下载的 JSON。
btnLogin = (Button) v.findViewById(R.id.btnLogin);
// reads translation from json that is stored in external application directory
btnLogin.setText(ResourceManager.getString("btnLogin"));
但是我的问题是有什么方法可以避免始终从活动中设置此文本,我可以从定义此按钮的 XML 文件中以某种方式进行吗?
<Button
android:id="@+id/btnLogin"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="{ResourceManager.getString("btnLogin")}"/>
有没有可能让我从 xml 调用一些函数并将其结果绑定到文本属性,或者是否有任何其他方法可以避免从活动中引用所有按钮/文本视图和其他控件并从那里设置文本?
【问题讨论】:
标签: android json translation