0

我首先要说的是,虽然我接受过一些 Java 培训,但这是我第一次涉足 Android 开发。

我所做的是创建了一个ImageButton名为的自定义MapCell,它基本上ImageButton包含一些额外的信息,并且编译得很好。

当我想MapCell在相关程序中创建一个Activity并将其添加到我TableLayout在 xml 中定义并具有 id 'mapTable' 的我的问题时,我的问题就出现了。相关位如下所示:

Random randy = new Random();

MapCell n = new MapCell(randy.nextInt(4), this); //the random number is part of my extra info

findViewById(R.id.mapTable).addView((View)n, 20, 20); //add cell to display

我得到一个错误: The method addView(View, int, int) is undefined for the type View

这对我来说听起来完全是胡说八道。在我独自坐着View遇到同样的错误并且没有任何改变(显然我的已经是 a因为它扩展了)之后,我把那个演员放在那里作为绝望。nMapCellViewImageButton

我希望一双新的眼睛能告诉我这是怎么回事,因为我已经检查过类似的问题,但我没有发现任何类似的问题。如果您需要查看更多代码,请立即告诉我。

4

2 回答 2

0

你遇到了这个问题,因为方法findViewById(R.id.mapTable)返回View对象。在 android 中,您不能将一个视图添加到另一个视图。

您可以将addView函数与ViewGroup, 和所有LinearLayout(等)对象一起使用。

于 2012-07-23T15:45:44.127 回答
0

该方法findViewById返回 aView并且View该类没有该方法addView(此方法在 theViewGroup及其子类中实现)。相反,你应该写:

((TableLayout)findViewById(R.id.mapTable)).addView(n, 20, 20);

我已将方法的返回值转换为findViewById实际具有该addView方法的类。

于 2012-07-23T15:43:24.720 回答