更改可见性导致我的应用程序崩溃,为什么?

我有2节课。一个类在我的扩展视图的 GameView 类中创建了我的迷宫游戏。GameView 类:将我的视图的可见性设置为 VISIBLE,直到玩家 == 退出,然后它不可见(如预期的那样)但是我的 LinearLayout 视图(在 OnCreate、MainActivity.java 中是不可见的)当布尔值(播放器)设置为 VISIBLE == exit) 为真,导致应用程序崩溃。


我知道更改 LinearLayout 的可见性会导致崩溃,就好像我将其注释掉一样,它会使应用程序崩溃。我试图更改我的 MainActivity 类中的可见性,但这似乎也不起作用。


我目前正在尝试使用 Intent 将此信息推送到 MainActivity,以使用我的 playAgain() 但我不确定该怎么做。


@Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);


        LinearLayout layout = findViewById(R.id.playAgainLayout);

        layout.setVisibility(View.INVISIBLE);

}


public void createMaze(){

...

...

 do {

            next = getNeighbour(current);

            if (next != null) {

                removeWall(current, next);

                stack.push(current);

                current = next;

                current.visited = true;

            } else

                current = stack.pop(); //gives us the top element of the stack and removes it from the

        }while(!stack.empty());


        Animation slideUp = AnimationUtils.loadAnimation(getContext(), R.anim.slide_up);

        gameView.startAnimation(slideUp);

}


public void checkExit() {

        if (player == exit && counter < 3) {

            counter++;


            Animation slideDown = AnimationUtils.loadAnimation(getContext(), R.anim.mazeslidedown);

            gameView.startAnimation(slideDown);

            gameView.setVisibility(INVISIBLE);


//            layout.setVisibility(VISIBLE);


        }

    }

我想要的是让迷宫变得不可见,LinearLayout 变得可见,并允许用户点击我的按钮(暂时重新启动迷宫)。


慕桂英4014372
浏览 98回答 3
3回答

蛊毒传说

我看过你关于那个的另一篇文章,并认为问题是因为你试图访问一个与该类不相关的布局对象,你可以在 onCreate() 的主类中使用 setContentView(R. layout.activity_main);&nbsp;关联它并通过对你的其他类的引用发送它,但我不确定通过它是否会起作用。

30秒到达战场

您没有定义 gameView 变量。你应该把&nbsp;gameView = findeVideById(R.id.game_view)&nbsp;你的 onCreate 方法

慕无忌1623718

我想你忘了gameView = findViewByID(R.id.your_gameview_id)
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java