2012-07-23 97 views
0

我會首先說這個,而我有一些Java培訓,這是我第一次進入Android開發領域。在Android中添加自定義ImageButton佈局會導致錯誤

我所做的是創建了一個名爲MapCell的定製ImageButton,它基本上是一個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投在那裏,因爲我無法改變自己坐在那裏並且沒有任何變化(我的MapCell已經是View,因爲它延伸了ImageButton),但我得到了同樣的錯誤。

我希望一雙新的眼睛可以告訴我這是什麼,因爲我檢查了類似的問題,我沒有發現任何這樣的。現在讓我來看看是否需要查看更多代碼。

回答

0

findViewById返回ViewView類沒有方法addView(此方法是在ViewGroup及其子類來實現)的方法。相反,你應該寫:

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

我已經投了findViewById方法在實際擁有addView方法的類的回報。

+0

謝謝你們,把發現的視圖作爲TableLayout解決了問題! – 2012-07-25 15:40:16

0

你有這個問題,因爲方法findViewById(R.id.mapTable)返回View對象。 在android中,您無法將一個視圖添加到另一個視圖。

您可以使用addView功能與ViewGroup和所有LinearLayout(等)對象。

相關問題