今回マルチランゲージを行った際の不具合を紹介します。
Signal Puzzleではゲーム中に、時間・タッチ回数などを更新時、データベースをリスト表示する時にテキストをセットしています。
この時にstring.xmlのリソースを取得してセットしていたんですが、単体では使えたけど、複数の文字列を扱う場合、使えませんでした。以下内容になります。
---------------------初期----------------------
TextView text1
*******省略*******
text1.setText("こんにちは");
---------------------変更1---------------------
text1.setText(R.string.xxx);
---------------------変更2---------------------
text1.setText("おはようございます"+R.string.xxx);
-----------------------------------------------
上記のように変更してみました。そうした場合変更2は失敗しました。
【表示時】
---初期-----
こんにちは
---変更1----
こんにちは
---変更2----
おはようございますxxxxxxxxxxx(R.string.xxxのリソースid)
------------
下記のように修正しました。
---------------------
変更3 ----------------------
TextView text1
String viewtext1
*******省略*******
viewtext1 = getString(R.string.xxx);
text1.setText("おはようございます"+viewtext1);
-------------------------------------------------
【表示時】
---変更3----
おはようございますこんにちは
------------
【結論】
複数の文字列をセットする場合は、一度単体でStringデータを取得して、セットしてあげるのが良いようです。
単体で使う場合でも取得してからの方が良いかもしれませんね!
これ位常識なのかな・・・?
以上になります。
0 件のコメント:
コメントを投稿