« 100 分で枕草子よ! | トップページ | 10 月 10 日 »

シリアライズの副作用

 動作確認をしていたらなにやら文字がおかしなことになっている。これまではきちんと文字が表示されていたのに数字が表示されている。ところが同じデータでも別のページでは正しく表示されている。なにが起きたのか?

 結論としては先のシリアライズ化の副作用だったらしい。当該オブジェクトの文字列がそうなっていたらしい。たしかにそれは当然のことなのかとようやく事態を理解する。それまでは問題なく文字を表示してくれていたコードでは駄目なのだけれど、よい(ように見える)部分もあったがゆえに少し悩んだのだった。

 ようはそう見えていただけで実は別の方法で表示させていたと、確認してみて分かったのだった。

 問題となったのは string.xml に定義していた文字列で、これを指定するために、

String str = String.valueOf(R.string.hoge);
 という感じに書いていたところが、シリアライズしているためにただの数字文字列になってしまうのだった。一方で、たとえばアクションバーのタイトルをセットするとかだと、
actionBar.setTitle(R.string.hoge);
 でも問題なく文字列として表示してくれる。

 そんなこんなで Assets のファイルへアクセスしようとしても数字だらけのファイル名になってしまっているので、そんなファイルは見つからないとか言われてしまう始末。

 ひとまずは、

Context.getResources().getString(R.string.hoge);
 とすることで対処はできているのだけれど、もう少しスマートな方法とかあるかもしれない。はまってしまったおかげで予定がまったく進行せずに、かえって逆戻りするはめに。

|
|

« 100 分で枕草子よ! | トップページ | 10 月 10 日 »

コメント

コメントを書く



(ウェブ上には掲載しません)




トラックバック

この記事のトラックバックURL:
http://app.cocolog-nifty.com/t/trackback/28835/60449041

この記事へのトラックバック一覧です: シリアライズの副作用:

« 100 分で枕草子よ! | トップページ | 10 月 10 日 »