该程序旨在在单击并提交您最喜欢的餐厅后在3个最喜欢的餐厅之间进行选择,它将返回选择了正确或错误的餐厅。我遇到的一个问题是,提交程序后将返回所有三个选项,但只有选定的将返回true。我该如何去做,只让真实的陈述出现而看不见的错误呢?任何帮助,将不胜感激!

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

        }
    });
  }
}

最佳答案

我该如何去做,只让真实的陈述出现而看不见的错误呢?


您问题的答案在于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);

    }
});


我希望这有帮助。编码愉快!

10-07 19:34
查看更多