【问题标题】:How can I make this boolean variable change from False to True?如何使这个布尔变量从 False 变为 True?
【发布时间】:2020-07-11 08:02:22
【问题描述】:

我的 Main Activity 上有一个布尔私有字段变量设置为 False:

private boolean accountCreated = false;

创建帐户时,我将其设置为true:

        createAccountButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            name = nameInput.getText().toString();
            username = usernameInput.getText().toString();
            age = Integer.parseInt(ageInput.getText().toString());
            saveData();
            openMainMenuActivity();
            accountCreated = true;
        }
    });

但布尔值不会从 false 变为 true。上面显示的代码位于 MainActivity.java 类和公共 void 方法中。我希望这个布尔值改变,因为如果为假用户不能玩,如果为真用户将能够玩。

【问题讨论】:

  • 你能提供更多代码吗?目前尚不清楚发生了什么

标签: android android-studio


【解决方案1】:

我猜你尝试使用openMainMenuActivity() 方法继续你的游戏,所以尝试将accountCreated = true; 移动到openMainMenuActivity(); 之前

否则如果不提供更多代码就很难判断

【讨论】:

  • 我在发帖前试过了,谢谢,但没用。 @Zain
【解决方案2】:

openMainMenuActivity() 方法应该以这种方式工作

Intent i = new Intent(CurrentActivity.this, MainMenuActivity.class);
            i.putExtra("isAccountCreated", accountCreated);
            startActivity(i);

OtherActivity 中应该是这样的

public class MainMenuActivity extends AppCompatActivity {

boolean aDifferentAccountCreatedBoolean;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_menu);

        aDifferentAccountCreatedBoolean = getIntent().getBooleanExtra("isAccountCreated", false);
        //Do stuff


    }

}

【讨论】:

    【解决方案3】:

    openMainMenuActivity(); 似乎正在重置 boolean 的值。我没有使用openMainMenuActivity();,而是选择制作一个弹出窗口,说明帐户已成功创建,并在用户按下X时简单地关闭弹出窗口,因此回到openMainMenuActivity();布尔值 未重置。这使它对我有用。感谢大家的回答!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-03-23
      • 1970-01-01
      • 2019-06-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多