LoginSignup
6
4

More than 5 years have passed since last update.

textView.setText(hoge) でResources$NotFoundException

Posted at

変な所で躓いたので自戒の意味を込めてメモ。

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型を入れてしまいがちなので注意。

6
4
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
4