簡體   English   中英

TextView 返回真假語句,而不是只返回真

[英]TextView returning both true and false statements instead of only true

單擊並提交您最喜歡的餐廳后,該程序可在 3 家最喜歡的餐廳之間進行選擇,它將返回一個被選中的真或假。 我遇到的一個問題是提交程序后將返回所有三個選項,但只有選定的選項會返回 true。 我將如何 go 關於只有真實的陳述出現而虛假的陳述不可見? 任何幫助,將不勝感激!

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

        }
    });
  }
}

嘗試這個

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

        }
    });

我將如何 go 關於只有真實的陳述出現而虛假的陳述不可見?

您的問題的答案在於if-statement的力量。 您可以使用 if 語句根據條件定義代碼遵循的方向。


pseudocode中,你可以有這樣的東西:

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

    }
});

我希望這有幫助。 快樂編碼!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM