このページを正しく表示するにはJavascriptを有効にしてください。
setText(hoge) でResources$NotFoundExceptionが出る
変な所で躓いたので自戒の意味を込めてメモ。
:::java
TextView textView = (TextView)view.findViewById(R.id.tv_fuga);
textView.setText(hoge);
// ↑ ここでResources$NotFoundException
この時ずっと```textView```のリソースが存在しないと思って、
XMLやR.javaと格闘していたのですが、
本当の理由は別のところにありました。
## 真のエラー原因
「hoge がint型」だったことが原因でした。
setTextはint型もString型も受け付ける事が出来、
String型が入ってきた時はそのままTextViewに出力してくれます。
しかしInt型が入ってきた時は出力すべき文字列ではなく、
XMLに紐ついたStringのIDとして解釈されてしまいます。
なのでhogeに紐付くXML(正確にはR.java)を探しに行って
エラーになっていました。
## 教訓
Int型をTextViewにセットしたい時はちゃんと文字列にキャストしましょう。
Jsonとかで受け取ったオブジェクトをまとめてsetTextしたりすると
うっかりInt型を入れてしまいがちなので注意です。