[英]Displaying same pictures in getResources().getIdentifier()
我目前正在開發一個音樂播放器應用程序,我的可繪制文件夾中有一些圖像想要按特定順序顯示它們。 我發現我必須使用getResources().getIdentifier()
方法,但我的所有歌曲總是得到相同的圖片。 那么我該如何解決這個問題呢? 這是我的代碼:
@Override
public void onBindViewHolder( SingerListAdapter.SingerListViewHolder viewHolder, int i) {
String drawableAddress = "R.drawable.gray_rectangle_"+i;
viewHolder.singerName.setText(musicDataModel.get(i).getmAtrist());
if(i != 47){
int idResource = context.getResources().getIdentifier(drawableAddress,"drawable",context.getPackageName());
viewHolder.singerMusicCover.setImageResource(idResource);
}
viewHolder.singerMusicCover.setImageResource(R.drawable.gray_rectangle_5);
}
注意我的musicDataModel
變量包含所有歌曲及其信息並且可以正常工作。 而且同一張圖總是gray_rectangle_5
您必須從字符串drawableAddress
刪除前綴R.drawable
,因此更改:
String drawableAddress = "R.drawable.gray_rectangle_"+i;
到:
String drawableAddress = "gray_rectangle_"+i;
在if
塊中,您可以在i != 47
時正確設置圖像,但是當代碼退出if
塊時,它將圖像設置為R.drawable.gray_rectangle_5
,這就是您總是看到此圖像的原因。
也許您應該在if
語句中添加一個else
部分,假設這是您在i = 47
時想要的圖像:
@Override
public void onBindViewHolder( SingerListAdapter.SingerListViewHolder viewHolder, int i) {
String drawableAddress = "gray_rectangle_" + i;
viewHolder.singerName.setText(musicDataModel.get(i).getmAtrist());
if (i != 47) {
int idResource = context.getResources().getIdentifier(drawableAddress,"drawable",context.getPackageName());
viewHolder.singerMusicCover.setImageResource(idResource);
} else {
viewHolder.singerMusicCover.setImageResource(R.drawable.gray_rectangle_5);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.