大家好。
我上面发布了我的Android项目的基本图表。这真是令人伤心,但那是5分钟的油漆让你。
无论如何,我会引导你完成它。我有一系列的imageViews的xml,我的board.Java类中有onClickListeners。如果单击其中一个imageView,则实例化pawn.java的实例,我将上下文传递给实例化的pawn对象,然后调用其possibleMoves()方法。
在这个方法结束时,我生成了一个int列表,它恰好是imageViews的id。 possibleMoves()的最后一部分如下:
for (String s : chunks) {
String possibleSquare = "s" + s.substring(2, 4);
Toast.makeText(boardContext, possibleSquare, Toast.LENGTH_SHORT).show();
int id = boardContext.getResources().getIdentifier(possibleSquare, "id", boardContext.getPackageName());
System.out.println(id);
ImageView backgroundImg = (ImageView) findViewById(id);
backgroundImg.setBackgroundColor(Color.rgb(255, 255, 255));
}
return list;
我遇到的问题是AndroidStudio说我的findViewById(id)无法解析。我已经尝试将上下文boardContext(我传递给我实例化的pawn对象的上下文)放在findViewById前面,我尝试使用findViewById(R.id.id)。
建议?
答案 0 :(得分:2)
findViewById(int id)
是View
个对象的函数 - here ..因此您无法在任何内容或任何对象上调用它。当您引用Activity
并致电findViewById(int id)
时,它会提取活动的contentView并在其上调用..
所以你的解决方案,给包含你的ImageView的视图充气或者引用你的活动,或者如果你传递的上下文是一个活动作为上下文,那么你可以将你的活动投射到上下文并调用你喜欢的方法