2011-10-18 48 views
0

我創建一個基於選項卡的應用程序,這是在原型階段。我已經創建了顯示基本內容(如在Android文檔描述)所需的標籤。現在,我想幾個按鈕添加到活動之一,然而,實例化一個新的按鈕可創建一個運行時異常:添加一個按鈕到活動導致運行時異常

public class HomeActivity extends Activity { 

    private Button menuBTN = new Button(this); 


    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     TextView textview = new TextView(this); 
     textview.setText("This is the main application entry, and home screen"); 
     this.setContentView(textview); 

     this.getMenuBTN().setText("Menu"); 


//  this.addContentView(this.getMenuBTN(), new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT)); 
    } 

如果我沒有在所有創建按鈕,基本的應用程序正常啓動。

+0

什麼是你想怎麼辦?將textview和按鈕添加到屏幕?如果是這樣,請使用佈局來適應這兩個視圖。 \ nAnyway,請不要把創建按鈕在上面**的onCreate()之前**。使用**這**只配備後**的onCreate()** – PH7

回答

2

你應該編程定義按鈕的佈局,但我會建議您在XML定義它,然後指向它通過:

menuBTN = (Button)findViewByID(R.id.your_menubutton_id_in_xml); 

然後,您將需要的setContentView()到XML佈局,其中的按鈕是。

setContentView(R.layout.your_layout_xml); 
+0

你,但現在這僅僅是一個快速原型證明是權力。 –

+0

關於這一點,我在哪裏能找到的分離佈局到單獨的XML文件中一個很好的資源? –

2

這一點,壞線:內

private Button menuBTN; 

然後創建您可以撥打:

private Button menuBTN = new Button(this); 

你應該這樣做,而不是

menuBTN = new Button(this); 

活動還沒有準備好在onCreate被調用之前使用,所以你不應該在該點之前引用它。