I know this should be fairly simple but I don't get it anyhow.
I've got an Activity (let's call it XyActivity) which has gotten pretty long. Therefore, I'd like to relocate some overriden methods to a subclass (let's call it XyOptions). Looks like that:
public class XyActivity extends Activity {
XyOptions xyOptions;
public void onCreate(Bundle savedInstanceState) {
xyOptions = new XyOptions();
...
}
}
and
public class XyOptions extends XyActivity {
public EditImageOptions() {...}
@Override
public boolean onCreateOptionsMenu(Menu menu) {...}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {...}
@Override
public boolean onOptionsItemSelected(MenuItem item) {...}
Unfortunately, the methods in XyOptions are never called. And I don't get why. I'am sure the answer is trivial so please point me in some direction.
Thanks,
Steff
You are misunderstanding the inheritance here. If you want to populate the menu in a subclass, try this:
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) {...} }