Android 如何扩展某些活动以重新定位,例如OnCreateOptions菜单?

Android 如何扩展某些活动以重新定位,例如OnCreateOptions菜单?,android,android-activity,subclass,relocation,subactivity,Android,Android Activity,Subclass,Relocation,Subactivity,我知道这应该相当简单,但我无论如何都不明白。 我有一个活动(我们称之为XyActivity),它已经变得相当长了。因此,我想将一些被重写的方法重新定位到一个子类(我们称之为xypotions)。看起来是这样的: public class XyActivity extends Activity { XyOptions xyOptions; public void onCreate(Bundle savedInstanceState) { xyOptions = ne

我知道这应该相当简单,但我无论如何都不明白。
我有一个活动(我们称之为XyActivity),它已经变得相当长了。因此,我想将一些被重写的方法重新定位到一个子类(我们称之为xypotions)。看起来是这样的:

public class XyActivity extends Activity {
    XyOptions xyOptions;
    public void onCreate(Bundle savedInstanceState) {
        xyOptions = new XyOptions();
        ...
    }
}

不幸的是,XyOptions中的方法从未被调用。我不明白为什么。我相信答案是微不足道的,所以请给我指出一些方向

谢谢,

Steff

您误解了这里的继承。 如果要在子类中填充菜单,请尝试以下操作:

public class XyActivity extends XyOptions { public void onCreate(Bundle savedInstanceState) { //.. other } } 公共类XyActivity扩展了XyOptions{ 创建时的公共void(Bundle savedInstanceState){ //…其他 } } 公共类扩展活动{ 公共EditImageOptions(){…} @凌驾 公共布尔onCreateOptions菜单(菜单菜单){…} @凌驾 公共布尔值OnPrepareOptions菜单(菜单){…} @凌驾 公共布尔值OnOptionItemSelected(MenuItem项){…} }
我认为您要做的是,在活动XyActivity中,通过在XyActivity中实例化XyOptions的对象,在XyOptions中调用OnCreateOptions菜单。据我所知这是不可能的。OnCreateOptions功能表仅在按下手机上的功能表按钮时才会启动


正如前面指出的,您应该纠正继承流

你说得太对了。我只是想出来了,然后回来纠正我自己。这有点尴尬。对不起我的愚蠢。。。 public class XyActivity extends XyOptions { public void onCreate(Bundle savedInstanceState) { //.. other } } public class XyOptions extends Activity { public EditImageOptions() {...} @Override public boolean onCreateOptionsMenu(Menu menu) {...} @Override public boolean onPrepareOptionsMenu(Menu menu) {...} @Override public boolean onOptionsItemSelected(MenuItem item) {...} }