0

アプリで言語を管理していませんが、ユーザーが言語を変更した場合、アプリからのテキストを変更する必要があります。そのような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);

そして、この方法ではうまくいきません。もちろん、アプリを再度起動すると機能しますが、テキストが変更されていないのにドローアブルが正しく変更されているため、奇妙な動作です

どうやってやるの ?

4

1 に答える 1