2011-11-24 75 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. 
}