TextView возвращает как истина, так и ложь, а не только истина - PullRequest
1 голос
/ 21 сентября 2019

Программа, созданная для выбора между 3 любимыми ресторанами после нажатия и отправки вашего любимого, возвращает значение true или false, в котором был выбран.Одна проблема, которую я имею, состоит в том, что после отправки программа вернет все три опции, но только выбранные вернут истину.Как бы мне было, чтобы только истинные утверждения появлялись, а ложные были невидимы?Любая помощь будет оценена!

public class MainActivity extends AppCompatActivity {

  private CheckBox BurgatoryCheckBox;
  private CheckBox SiennaCheckBox;
  private CheckBox BakersCheckBox;

  private Button submitButton;
  private TextView showTextView;

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

    BurgatoryCheckBox = (CheckBox) findViewById(R.id.checkBoxBurgatory);
    SiennaCheckBox = (CheckBox) findViewById(R.id.checkBoxSienna);
    BakersCheckBox = (CheckBox) findViewById(R.id.checkBoxBakers);

    showTextView = (TextView) findViewById(R.id.txtViewResults);

    submitButton = (Button) findViewById(R.id.btnSubmit);
    submitButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            //BurgatoryCheckBox
            StringBuilder stringBuilder = new StringBuilder();

            stringBuilder.append(BurgatoryCheckBox.getText().toString() +
                    "state is:"+ BurgatoryCheckBox.isChecked() + "\n");

            stringBuilder.append(SiennaCheckBox.getText().toString() +
                    "state is:"+ SiennaCheckBox.isChecked() + "\n");

            stringBuilder.append(BakersCheckBox.getText().toString() +
                    "state is:"+ BakersCheckBox.isChecked() + "\n");

            showTextView.setVisibility(View.VISIBLE);
            showTextView.setText(stringBuilder);

        }
    });
  }
}

Ответы [ 2 ]

0 голосов
/ 22 сентября 2019

Как бы мне поступить так, чтобы истинные утверждения появлялись только тогда, когда ложное существо невидимо?

Ответ на ваш вопрос заключается в силе if-statement.Вы можете использовать оператор if, чтобы определить направление, в котором будет следовать ваш код в зависимости от условий.

В псевдокоде вы можете получить что-то вроде этого:

if BurgatoryCheckBox.isChecked -> stringbuilder.append(...)
if SiennaCheckBox.isChecked -> stringbuilder.append(...)
if BakersCheckBox.isChecked -> stringbuilder.append(...)

Таким образом, если не установлен флажок BurgatoryCheckBox, ничего не произойдет, добавление StringBuilder не произойдет.То же самое относится к SiennaCheckBox и BakersCheckBox.

В фактическом коде Java ваш метод OnClick должен выглядеть следующим образом:

@Override
    public void onClick(View v) {

        StringBuilder stringBuilder = new StringBuilder();

        if (BurgatoryCheckBox.isChecked()) { 
          stringBuilder.append(BurgatoryCheckBox.getText().toString() +
                "state is:"+ BurgatoryCheckBox.isChecked() + "\n");
        }

       if(SiennaCheckBox.isChecked()) {
          stringBuilder.append(SiennaCheckBox.getText().toString() +
                "state is:"+ SiennaCheckBox.isChecked() + "\n");
        }

        if(BakersCheckBox.isChecked()) {
          stringBuilder.append(BakersCheckBox.getText().toString() +
                "state is:"+ BakersCheckBox.isChecked() + "\n");
        }

        showTextView.setVisibility(View.VISIBLE);
        showTextView.setText(stringBuilder);

    }
});

Надеюсь, это поможет.Веселого кодирования!

0 голосов
/ 22 сентября 2019

Попробуйте это

@Override
        public void onClick(View v) {
            //BurgatoryCheckBox
            StringBuilder stringBuilder = new StringBuilder();
            if (BurgatoryCheckBox.isChecked()) { 
              stringBuilder.append(BurgatoryCheckBox.getText().toString() +
                    "state is:"+ BurgatoryCheckBox.isChecked() + "\n");
            }
           if(SiennaCheckBox.isChecked()) {
              stringBuilder.append(SiennaCheckBox.getText().toString() +
                    "state is:"+ SiennaCheckBox.isChecked() + "\n");
            }
            if(BakersCheckBox.isChecked()) {
              stringBuilder.append(BakersCheckBox.getText().toString() +
                    "state is:"+ BakersCheckBox.isChecked() + "\n");
            }

            showTextView.setVisibility(View.VISIBLE);
            showTextView.setText(stringBuilder);

        }
    });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...