如何根据其他活动的结果启用/禁用按钮?

时间:2017-06-05 08:57:53

标签: android

我目前正在开发一款Android游戏App。但我遇到的问题是将 Private Void Method 中的数据从Level1.java传递到LevelPage.java中的数据。这是Level1.java的代码,它是非常长的编码,近500行代码。因此,我只会显示分数的if else条件,以便解锁下一个Level按钮。

Level1.java

在AlertDialog中,如果单击Procceed按钮这是正按钮,它将直接进入2级。但是,当然,即使按下Proceed按钮进入2级,它也必须确保2级按钮已经启用。但是在这种情况下的Back按钮的中性按钮中,当返回到LevelPage Activity时,它应该启用Level 2按钮。

if (score == 30) {

                AlertDialog.Builder builder = new AlertDialog.Builder(Level1.this);
                builder.setTitle("Level 1 Complete!");
                builder.setMessage("You have won! You have unlock level 2! You can proceed to Level 2 or go back.");
                builder.setPositiveButton("Proceed", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Intent intent = new Intent(Level1.this, Level2.class);
                        startActivity(intent);
                    }
                });

                builder.setNeutralButton("Back", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Intent intent = new Intent(Level1.this, LevelPage.class);
                        intent.putExtra("30", score);
                        startActivity(intent);
                    }
                });
                builder.setCancelable(false);
                builder.show();
                runTimer.cancel();
            }

请注意,gamePlay()是一个私有的void方法,只是意味着它将继续游戏,所以只是忽略它。

LevelPage.java

btnLevel2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                clickSound.start();
                Intent i = getIntent();
                i.getSerializableExtra("30");
                if (i.equals("30")) {
                    Intent intent = new Intent(LevelPage.this, Level2.class);
                    startActivity(intent);
                } else {
                    btnLevel2.setEnabled(false);
                }

            }
        });

现在它实际上可以禁用该按钮。但即使在level1活动中得分为30,我也无法启用该按钮。我不知道能否将数据从level1活动传递到btn2.setonclicklistener()的levelpage活动出了什么问题

1 个答案:

答案 0 :(得分:1)

{{1}}