だから、これは非常に難しいと思います。スピナーから選択した値を保存するには、デバイスの言語が変更された場合に変更する必要がありますか?
私はすべての手段とすべての知識を試してきたので、すべてのウェブとこのサイトを検索した後、私は質問しなければなりません。ここで
は契約です: ミツバチ 鳥 リス値がされるスペイン語:
abejas
私は(英語)の値が言うように持っているスピナーを持っていますpajaros ardillas
私は実行時に、ファイルからのスピナーは
<resources>
<string name="bees">abejas</string>
<string name="birds">pajaros</string>
<string name="squirrels">ardillas</string>
<string name="other_species">otra especie</string>
</resources>
問題は、私は保存するべきではないということです-ES値
store.xml
<resources>
<string name="bees">bees</string>
<string name="birds">birds</string>
<string name="squirrels">squirrels</string>
<string name="other_species">other species</string>
</resources>
やフォルダの下にstore.xml
と呼ばれますユーザーが選択した実際の値です。デバイスの言語を変更すると、保存された値は別の言語になるためです。
私は、ユーザーが選択した文字列値の一意のIDを取得する方法を考え、res.getIdentifierを使用してIdと文字列リソースの名前を取得しました。それからデータベースのリソースの名前を保存します。言語が変更された場合、その名前に基づいて値を見つけることができます。
は今、res.getIdentifierは限り値は、名前、すなわちと同じであったとして、働いていた:
value "bees", name="bees" (works)
value "bees", name="abejas" (don't work)
value "other_species", name="other species" (don't work)
をだから私は、XML内の文字列の名前を取得することができる方法があり、値から?
もう1つの回避策がありますか?
はあなたの提案のためにありがとうございましたが、どのように私はまさにこれを実現することができますか?スピナーにIDを記入すると、出現すべき文字列の代わりに表示されると思います。それに加えて、私はスピナーにアダプターを記入することを学んだので、私は両方を分ける方法を知らない。しかし、私はそれを行う方法を調査します。ありがとう、本当に。 – monn3t
カスタムアダプターは、値から必要なビューを生成できます。 ArrayAdapterは単にviewをobject.toString()で塗りつぶします。 ArrayAdapter(ids)を拡張し、getViewをオーバーライドするアダプタを実装します。 –