2014年10月30日木曜日

View に渡す Context には注意しようと思った

View を生成するときに必要な Context で嵌りましたのでメモ。
2.x系のときに作成したアプリを 4.x系にしようとしたとき Theme は Holo.Light なのに
Dialog で表示される EditText の背景色が Holo.Light ではありませんでした。

原因は EditText を生成するときに渡す Context が Holo.Light を設定した Context では
ありませんでした。
作ったアプリの Theme は Activity ごとに設定しており、Application では Theme を何も
設定していなかったのでこのようなケースでは Activity を渡す必要がありました。
問題となっていた部分では getApplicationContext() を渡していました。

アプリケーション全体で共通の Theme を設定しておいたほうが得策だったと思いました。
今後のアプリ作成に生かしていこうと思います。