我正在爲Android創建受歡迎的掃雷遊戲的版本。我試圖以編程方式創建一個按鈕並將其添加到RelativeLayout。我發現非常類似的東西在這裏:How do I programmatically add buttons into layout one by one in several lines?創建一個按鈕並以編程方式將其添加到視圖中
當我嘗試運行它,我在得到一個NullPointerException:
RelativeLayout layout1 = (RelativeLayout) findViewById(R.layout.game);
這裏是整個代碼塊:
public void create() {
RelativeLayout layout1 = (RelativeLayout) findViewById(R.layout.game);
for(int i = 0; i < gridSize; i++) {
if(grid[i] == 0) { //if grid pos. indicates an empty cell
Button empty = new Button(this);
empty.setBackgroundResource(R.drawable.emptybutton); //set background to empty
empty.setId(i); //set id to value of i
empty.setLayoutParams(new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));
layout1.addView(empty); //add the button to the relativeLayout view
//((Button) findViewById(i)).setOnClickListener(emptyListener);
}
在此先感謝對於任何迴應
我認爲你的問題無法到達你的game.xml。你能否提供你的結構(大綱)? – guness 2012-04-10 12:11:05
我使用了一個int數組來模擬掃雷領域。例如位置[2]處的值爲9表示在掃雷場區域的位置2處有地雷。那麼我使用if語句來生成不同的按鈕,即如果位置[2] == 9,將創建一個表示礦的按鈕。我試圖將這些按鈕添加到將代表掃雷字段的相對佈局。這有幫助嗎? – DanielFitzgerald123 2012-04-10 13:36:43