Android-访问其他类';s对象(Java)
我正在开发一款游戏,它有10多个关卡,都包含相同的“CheckWin()”方法,而且太长,需要做很多事情,比如更改值、更新分数、更新时间、更改图像等等,所以我想将“CheckWin()”方法移到一个名为“Functions”的新类中,因此该方法需要访问一些视图,价值观、对象等。。。并在调用此方法的类中更改一些视图,现在我正在这样做Android-访问其他类';s对象(Java),java,android,Java,Android,我正在开发一款游戏,它有10多个关卡,都包含相同的“CheckWin()”方法,而且太长,需要做很多事情,比如更改值、更新分数、更新时间、更改图像等等,所以我想将“CheckWin()”方法移到一个名为“Functions”的新类中,因此该方法需要访问一些视图,价值观、对象等。。。并在调用此方法的类中更改一些视图,现在我正在这样做 //In Level Activity Calling The Method ImageView imageView1 = (ImageView)findVi
//In Level Activity Calling The Method
ImageView imageView1 = (ImageView)findViewById(R.id.imageView);
Function function = new Funtions();
//And In Functions Class Changing Images
public void CheckWin() {
Level1.imageView1.setVisibility(View.INVISIBLE);
Level2.imageView1.setVisibility(View.INVISIBLE);
Level3.imageView1.setVisibility(View.INVISIBLE);
Level4.imageView1.setVisibility(View.INVISIBLE);
Level5.imageView1.setVisibility(View.INVISIBLE);
Level6.imageView1.setVisibility(View.INVISIBLE);
Level7.imageView1.setVisibility(View.INVISIBLE);
Level8.imageView1.setVisibility(View.INVISIBLE);
Level9.imageView1.setVisibility(View.INVISIBLE);
Level10.imageView1.setVisibility(View.INVISIBLE);
}
但是这给出了一个错误,所以我如何检查用户是哪一级的,哪个类调用了这个方法,这样我就可以只使用一个语句来完成所有这些。。。像
public void CheckWin() {
ClassThatInvokedThisMethod.imageView1.setVisibility(View.INVISIBLE);
}
请使用抽象 使用给定的功能创建一个基类,并在您的级别中扩展它 如果所有实现都完全相同,则可以在
BaseLevel
中实现,否则可以在Level1
类中重写它
public class Level1 extends BaseLevel{
...
// if implementation is different per class
public void checkwin(){
}
}
public abstract class BaseLevel extends AppCompatActivity{
public abstract void checkwin();
}
或者像这样
public class Level1 extends BaseLevel{
...
// if implementation is always the same
}
public abstract class BaseLevel extends AppCompatActivity{
public void checkwin(){
// do it here
}
}
你能举个例子吗?我不知道该怎么做:|但是我的类已经扩展到了一个活动,它显示了一个错误“类不能扩展多个类”请参阅更新的代码,将您的基本级别扩展到该活动