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