【发布时间】:2021-06-12 15:23:45
【问题描述】:
我的适配器有以下代码:
@Override
public void onBindViewHolder(GameViewHolder holder, int position) {
final Games game = gameList.get(position);
holder.awayTeamImageView.setBackgroundResource(R.drawable.fortyers);
}
以上内容完美无缺,但我正在对将要显示的图像进行硬编码。我真正需要的是从游戏列表中获取背景图片,我正在做这样的事情:
holder.awayTeamImageView.setBackgroundResource(R.drawable.game.getaBackground());
但这会导致错误
如何动态设置imageView的背景资源?
更新:
我已附上所需效果的屏幕截图。
每周日程都会发生变化,因此列表总是会根据所选的周而有所不同。
游戏构造函数:
public Games(DataSnapshot game) {
this.AwayTeam = game.child("AwayTeam").getValue().toString();
this.AwayId = Integer.parseInt(game.child("AwayId").getValue().toString());
this.HomeTeam = game.child("HomeTeam").getValue().toString();
this.HomeId = Integer.parseInt(game.child("HomeId").getValue().toString());
this.aBackground = game.child("aBackground").getValue().toString();
this.hBackground = game.child("hBackground").getValue().toString();
}
【问题讨论】:
-
在
Games上放置一个getaBackground()方法,返回一个可绘制资源ID。 -
@CommonsWare 我有方法,如何返回可绘制资源 id?
-
在某个地方,您需要能够将团队与合适的资源相关联,例如团队名称和头盔图像。所以,也许
Games有两个Team对象,home和away各有一个。Team可以有一个getTeamName()返回团队名称的字符串资源 ID,还有一个getTeamHelmet()返回头盔的可绘制资源 ID。在某个地方(Leaguesingleton?)您可以创建团队的主名单(例如,new Team(R.string.team_name_phl, R.drawable.team_helmet_phl);). Now, yourGames` 可以访问两个头盔的可绘制 ID。
标签: java android android-studio