Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/sharepoint/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android-访问其他类';s对象(Java)_Java_Android - Fatal编程技术网

Android-访问其他类';s对象(Java)

Android-访问其他类';s对象(Java),java,android,Java,Android,我正在开发一款游戏,它有10多个关卡,都包含相同的“CheckWin()”方法,而且太长,需要做很多事情,比如更改值、更新分数、更新时间、更改图像等等,所以我想将“CheckWin()”方法移到一个名为“Functions”的新类中,因此该方法需要访问一些视图,价值观、对象等。。。并在调用此方法的类中更改一些视图,现在我正在这样做 //In Level Activity Calling The Method ImageView imageView1 = (ImageView)findVi

我正在开发一款游戏,它有10多个关卡,都包含相同的“CheckWin()”方法,而且太长,需要做很多事情,比如更改值、更新分数、更新时间、更改图像等等,所以我想将“CheckWin()”方法移到一个名为“Functions”的新类中,因此该方法需要访问一些视图,价值观、对象等。。。并在调用此方法的类中更改一些视图,现在我正在这样做

//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
    }
}

你能举个例子吗?我不知道该怎么做:|但是我的类已经扩展到了一个活动,它显示了一个错误“类不能扩展多个类”请参阅更新的代码,将您的基本级别扩展到该活动