gpt4 book ai didi

android - 如何根据另一个 Activity 的结果启用/禁用按钮?

转载 作者:行者123 更新时间:2023-11-30 00:31:00 26 4
gpt4 key购买 nike

我目前正在开发 Android 游戏应用程序。但是我遇到了有关将 Private Void Method 中的数据从 Level1.java 传递到 LevelPage.java 中的数据的问题。下面是 Level1.java 的代码,非常非常长的代码,将近 500 行代码。所以我将只显示允许解锁下一个级别按钮的分数的 if else 条件。

Level1.java

在AlertDialog中,如果点击Procceed按钮是肯定的按钮,会直接进入level 2。当然,即使按下Proceed按钮进入Level 2,也必须保证Level 2 Button已经存在启用。但在本例中为后退按钮的中性按钮中,当返回到 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() 是一个私有(private)的 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 Activity 中得分为 30,我也无法启用该按钮。我不知道能够将数据从 level1 Activity 传递到 btn2.setonclicklistener() 的 levelpage Activity 出了什么问题

最佳答案

you can do something like this:

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

//In your level activity where you have btnlvl2
// int or String based on what have you decalred your score varaible
Intent i = getIntent();
String score = i.getStringExtra("SCORE");

if (score.equals(30)){
btnLevel2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
clickSound.start();
Intent intent = new Intent(LevelPage.this, Level2.class);
startActivity(intent);

}
});
}

关于android - 如何根据另一个 Activity 的结果启用/禁用按钮?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44365243/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com