2016-05-22 3 views
2

Как проверить, является ли логическое значение true или false из другого класса java?Проверьте, истинно ли логическое значение из другого класса java.

menu.class

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); 
+2

Ну, так как код довольно неполный, мы не можем здесь помочь. Из этой части кода все, что я могу сказать, это: «отлично выглядит для меня». Поскольку он, по-видимому, не работает, сообщение об ошибке и полный код будут весьма полезными. Скорее всего, речь идет о привилегиях доступа, но не могу сказать, что без кода – Paul

+0

«Легко» переменная поля? – Arman

+0

сделать boolean easy acess level общедоступным или защищенным или по умолчанию rahter, чем private. поэтому его можно получить вне класса. – Ankur1994a

ответ

2

Вам нужна ссылка на этот класс, чтобы сделать это. Общим способом коммуникации будет observer pattern для java. Delegation также является возможностью, которая создаст двойную ссылку, но в Java вы обычно хотите взять шаблон наблюдателя, поскольку он реализован по умолчанию.

У вас также может быть своего рода singleton pattern, чтобы иметь глобальную ссылку на экземпляр.

3

Вы разрабатываете для 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); 
+0

Да, я разрабатываю для Android. Тем не менее, я бы хотел решить эту проблему, прежде чем начинать использовать более продвинутый код. –

+0

Таким образом, на самом деле это не продвинуто. Все, что он делает, это сохранить вашу переменную на устройстве. Таким образом, вы можете получить доступ к его стоимости, даже если вы закрыли приложение, а затем снова открыли его. –

3

Если вы просто пытаетесь получить или не является истинным или ложным значением , вы можете либо сделать свой логический public, либо вы можете создать метод getter.