0
我试图设计一个有多种游戏模式的安卓游戏。这些游戏模式由不同的类别表示,并且应该在启动时决定使用哪个类别,其中该类别的默认设置是A级。更改设置将提示游戏开始使用类别B.从onCreate启动类并从子类中的父类调用方法
事情是,因为这两个类之间有相当多的共享功能,我有一个包含通用功能的超类,所以理论上我可以从子类中调用方法。但是,我无法得到这个工作。
编辑:我想出了为什么这些方法没有工作,因为他们一直在做,但因为我现在绕过了父类的创建,所以方法中使用的数据没有加载。愚蠢的错误,解决了这个问题。 我仍然无法使用onCreate来决定使用哪个子类。
这基本上是我怎样,我想实现这一切(我没显示B类为不相关的现在):提前
public Class Parent{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.some_layout);
chooseMode();
}
private void chooseMode(){
if (conditionA){
Intent modeA = new Intent(this, A.class);
startActivity(modeA);
}
else{
Intent modeB = new Intent(this, B.class);
startActivity(modeB)
}
}
protected void display_imgView(){
imgView.setVisibility(View.VISIBLE);
}
}
public Class A extends Parent{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.some_layout);
}
public void someMethod(){
super.display_imgView();
}
}
谢谢!
我试过之前,但也没有工作。不过,我选择尝试策略模式,这确实非常有用。 我目前唯一困惑的是为什么我的imageViews在执行替代策略时没有找到,但是他们在使用常规策略时。 – Drosoph
你在'onCreate(...)'函数中发出警告吗?您必须扩展活动,否则'onCreate(...)'根本不会执行。也许这就是你叫** findViewById ** s的地方? – Gi0rgi0s