2017-09-24 18 views
1

アセットフォルダから画像を取得し、insectImageという変数に設定しようとしています。setImageResource()戻り値null

InsectRecyclerAdapter.InsectHolder insectHolder = holder; 
Insect insectItem = (Insect) recyclerViewItems.get(position); 

String imageName = insectItem.getImageName(); 
Log.d("imageName",imageName); 
int imageResID = mContext.getResources().getIdentifier(imageName, "drawable", mContext.getPackageName()); 
Log.d("imageID", ""+imageResID); 
insectHolder.insectImage.setImageResource(imageResID); 

imageResID戻りlogcatで0が、imageName変数が私の資産フォルダに存在する私のイメージのいずれかに設定されます。ここで私がやったものです。 LogcatはsetImageResource(imageResID)がnullを返すと言っています。

imageResIDをアセットフォルダにあるimageNameに設定するにはどうすればよいですか?

+0

* "Logcatは、setImageResource(imageResID)がnullを返すと言っています。" * - そうではありません。 'setImageResource'は' void'メソッドです。おそらく何も返すことはできません。ただ、ヌルだけではありません。私たちのエラーメッセージを「要約」する場合は、正確に行う必要があります。より良いアイデアは、logcat **からエラーメッセージとスタックトレースをコピー&ペーストし、**要約しようとすることなくです。 –

答えて

0

imageResIdがゼロの場合、つまり、getIdentifierは指定した名前情報のリソースを見つけることができません。

参考:

問題の根本的な原因です。それ以降は、以前のエラーの「結果」に過ぎません。

解決策:リソース識別子の検索が失敗する理由を確認してください。

  • nameが間違っていますか?
  • defType
  • defPackage
  • イメージリソースはありますか?
  • 正しい場所にありますか?
関連する問題