【问题标题】:Check if a boolean is true from another java class检查另一个 java 类的布尔值是否为真
【发布时间】:2016-09-19 13:09:15
【问题描述】:

如何检查另一个 java 类的布尔值是真还是假?

菜单类

public class menu extends AppCompatActivity {
    TextView textPoints;
    Button button2;
    public boolean easy;

    public void Click(View v) {
    if (button2.getText().equals("Svårighetsgrad: Svårt")) {
                easy = true;
                button2.setText("Svårighetsgrad: Lätt");
                }
            else {
                easy = false;
                button2.setText("Svårighetsgrad: Svårt");

GameActivity.class

menu m = new menu();
            if (m.easy == true) {
                myImageView.setVisibility(View.VISIBLE);
                newAndroid();
                points = getPoints() - 1;
                text1.setText("Poäng: " + points);
            }
            else {
                myImageView.setVisibility(View.VISIBLE);
                newAndroid();
                points = getPoints() - 5;
                text1.setText("Poäng: " + points);

【问题讨论】:

  • 好吧,由于代码很不完整,我们在这里帮不上什么忙。从这部分代码中,我只能说:“对我来说看起来不错”。由于它显然不起作用,因此错误消息和完整代码将非常有帮助。很可能是关于访问权限,但没有代码就不能肯定地说
  • “easy”是字段变量吗?
  • 使布尔简单访问级别公开或受保护或默认而不是私有。所以它可以在课堂外访问。
  • 公共布尔简单;它是公开的,但由于某种原因它仍然不起作用。无论如何它都会删除 5 分(如 gameactivity.class 所示)。

标签: java if-statement boolean


【解决方案1】:

您正在为 Android 开发,对吗?
在这种情况下,您可能应该使用 SharedPreference(这会更容易)。

使用此代码保存值:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedPref.edit();
editor.putBoolean("EASY", easy);
editor.commit();

这个代码来获取值:

SharedPreferences sharedPref = getActivity().getPreferences(Context.MODE_PRIVATE);
boolean score = sharedPref.getBoolean("EASY", defaultValue);

【讨论】:

  • 是的,我正在为 android 开发。但是,我想在开始使用更高级的代码之前解决这个问题。
  • 因此并不是很先进。它所做的只是将您的变量保存在设备上。这样,即使您关闭了应用,然后重新打开它,您也可以访问它的价值。
【解决方案2】:

如果你只是想知道一个值是真还是假,你可以将你的布尔值 public 或者你可以创建一个 getter 方法。

public boolean getBooleanValue(){
    return booleanYouWant;
}

【讨论】:

    【解决方案3】:

    您需要对该类的引用才能做到这一点。常见的通信方式是observer pattern for java。 Delegation 也是一种可能性——它会创建一个双重引用,但在 Java 中你通常希望采用观察者模式,因为它是默认实现的。

    您还可以使用某种singleton pattern,以获取实例的全局引用。

    【讨论】:

      猜你喜欢
      • 2021-11-14
      • 2019-05-22
      • 1970-01-01
      • 2019-08-07
      • 2013-04-02
      • 2011-03-05
      • 2013-09-18
      • 2012-08-18
      • 1970-01-01
      相关资源
      最近更新 更多