2012-03-26 27 views
0

我有以下場景:android up,兼容Android 1.6及更高版本開始。在所有活動的底部,我有一組只能啓動活動的ToggleButton。不要問我爲什麼,這是請求:)有了這些按鈕做同樣的事情在我以爲這樣所有的屏幕:重複使用Android中的多個活動視圖

  1. 把佈局中的一個XML文件,並在我的所有活動佈局
  2. 創建一個擴展Activity併爲所有按鈕分配onClick方法的類
  3. 選中ToggleButton後,將所有其他按鈕設置爲checked =「false」並執行該按鈕的操作。

當我重寫onCreate()時,我卡在了我的BaseActivity上。如何獲取我的按鈕並將onClick監聽器分配給他們?

public class BaseActivity extends Activity { 
    private ToggleButton menuHome; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
      //this does not work as it cannot find R.id.menu_home) 
     menuHome = (ToggleButton) findViewById(R.id.menu_home); 
    } 
} 

回答

1

在您的其他擴展BaseActivity的活動中,查看您的OnCreate方法。它看起來像這樣嗎?

public class YourActivity extends BaseActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     base.Oncreate(saveInstanceState);  

     setContentView(R.layout.YourLayout); 

     // Other code here... 
    } 
} 

它與訂單有關...您尚未設置內容視圖,因此您的切換按鈕不存在。試試這個:

public class YourActivity extends BaseActivity { 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     setContentView(R.layout.YourLayout); // Set your content view first. 

     base.Oncreate(saveInstanceState);  



     // Other code here... 
    } 
} 
0

你要調用的setContentView(R.layout.your_layout)其中your_layout是包含按鈕R.id.menu_home佈局。現在你沒有爲活動提供佈局,所以沒有層次結構去搜索按鈕。