我不在应用程序中管理语言,但如果用户修改他的语言,则必须修改应用程序中的文本。如果我像这样在 xml 中使用文本:
<TextViewCustomFont
android:id="@+id/info_connexion"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/discover"
android:layout_marginBottom="5dp"
android:layout_marginTop="20dp"
android:text="@string/have_account" />
有用。例如,我用法语启动我的应用程序,然后将应用程序置于后台并更改手机设置。我设置了一种英语,当应用程序处于前台时,文本会更新。
但由于某些原因,我必须使用以下方法动态加载文本:
int nameResourceID = ctx.getResources().getIdentifier(key, "string", ctx.getApplicationInfo().packageName);
if (nameResourceID == 0)
return key;
else
return ctx.getString(nameResourceID);
而使用这种方法,它不起作用。当然如果我再次启动该应用程序,它可以工作,但这是一种奇怪的行为,因为可绘制对象已正确修改,而文本则没有
我怎样才能做到这一点 ?