2011-11-24 104 views
8

我完全不熟悉Android(Java)開發,我非常興奮! Google的開發人員指南非常棒,我在很短的時間內學到了很多東西。它甚至讓我在夜間清醒;)擴展活動的類

今天,我經歷了製作菜單,並有一些我不明白。這是關於擴展類。該指南稱:

提示:如果您的應用程序包含多種活動,其中一些 提供相同的選項菜單,考慮創建 實現只按了onCreateOptionsMenu(活動)和 onOptionsItemSelected()方法。然後擴展這個類,每個 活動應該共享相同的選項菜單。這樣,您就有 來管理處理菜單操作的一組代碼,並且每個後代類都會繼承菜單行爲。

我不明白的一點是如何擴展類...讓我們說我有一個MainActivity子活動。我想在兩個活動中都有相同的菜單,所以我做了MainMenuActivity。我如何爲這兩個活動擴展這個類?

是的,我在網上搜索,但找不到任何可用。我真的很想理解它,所以我希望任何人都可以幫助我解決一些示例代碼+解釋。先謝謝你!!

+0

還要檢查[此](HTTP:// stackoverflo w.com/questions/7618227/can-i-combine-my-code-into-some-kind-of-global-activity/7618263#7618263)與您正在談論的內容非常相似。 –

回答

18

他們的意思是:

通常你會:

public class MyActivity extends Activity{...} 

如果您有4-5-6 ......這些活動的,他們每個人使用相同的菜單代碼,你可以複製並粘貼代碼4-5-6 ..次。或者你可以這樣做:

public class BaseActivity extends Activity{ 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     //My menu code 
    } 
} 

而且使用這個類爲您的4-5-6 ...活動:

public class MyActivity extends BaseActivity{...} 

這樣,您就不需要複製您的菜單創建代碼到所有的活動,而且,您不必編輯4-5-6 ...課程來編輯一小部分創建菜單。菜單代碼現在也在MyActivity中。


你也可以看看here,它解釋了什麼是extends手段。

+0

非常感謝你!現在我明白了,這比我想象的容易! – MartijnG

9

真的很簡單。

MainMenuActivity

public class MainMenuActivity extends Activity { 
    //Override or add whatever functionality you want other classes to inherit. 
} 

MainActivity

public class MainActivity extends MainMenuActivity { 
    //Add what is specific to MainActivity. The menu will be inherited from MainMenuActivity. 
} 

子活動

public class SubActivity extends MainMenuActivity { 
    //Add what is specific to SubActivity. The menu will be inherited from MainMenuActivity. 
}