亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

僅在滿足一個或另一個條件時繼續

僅在滿足一個或另一個條件時繼續

鴻蒙傳說 2022-06-30 18:07:12
我有一個基本上是調查活動的應用程序。有些問題要求在繼續之前填寫一組條件或另一組條件。當用戶按下是時,他們會得到一組 EditText 字段,如果他們按下否,他們會得到另一組。任何一種選擇都會啟用相同的繼續按鈕,但我需要檢查是否只填寫了兩組中的一組,然后再繼續下一個活動。    bContinue.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            if (myYesSection.isShown() && valueCombined.getText().toString().isEmpty()){                Toast.makeText(getApplicationContext(), "Please enter the combined score.", Toast.LENGTH_LONG).show();            }            if (myNoSection.isShown() && valueOne.getText().toString().isEmpty() || valueTwo.getText().toString().isEmpty() || valueThree.getText().toString().isEmpty()){                Toast.makeText(getApplicationContext(), "Please fill out all fields.", Toast.LENGTH_LONG).show();            }            else{                Intent toNextActivity = new Intent(getApplicationContext(), QuestionThree.class);                startActivity(toNextActivity);            }        }    });在操作中,如果valueCombined被填寫,toast 會出現“請填寫所有字段”。并且用戶不會去下一個活動。如果valueCombined填寫了,我不需要填寫其他字段。填寫valueOne、valueTwo和valueThree允許打開下一個活動,但要敬酒“請輸入綜合分數”。我必須更改什么以便按下按鈕只需要兩個條件之一才能繼續?更新工作代碼感謝@Andreas 的課程。這會準確檢查我需要什么,并且如果顯示錯誤的條件集,則不會彈出錯誤的吐司:   bContinue.setOnClickListener(new View.OnClickListener() {        @Override        public void onClick(View v) {            int count = 0;            if (combinedValue.getText().toString().isEmpty()){                if (myYesSection.isShown()) {                    Toast.makeText(getApplicationContext(), "Please enter combined score.", Toast.LENGTH_LONG).show();                }                count++;            }            if (valueOne.getText().toString().isEmpty() || valueTwo.getText().toString().isEmpty() || valueThree.getText().toString().isEmpty()){                if (myNoSection.isShown()) {                    Toast.makeText(getApplicationContext(), "Please fill out all fields.", Toast.LENGTH_LONG).show();                }                count++;            }
查看完整描述

1 回答

?
瀟湘沐

TA貢獻1816條經驗 獲得超6個贊

如果您有例如 3 個條件,并且您只想在其中 1 個為真時才做某事,請計算真條件的數量:


int count = 0;

if (condition1)

    count++;

if (condition2)

    count++;

if (condition3)

    count++;

if (count == 1) {

    // Yay!

}

或者使用三元運算符來縮短它:


if (1 == (condition1 ? 1 : 0) +

         (condition2 ? 1 : 0) +

         (condition3 ? 1 : 0)) {

    // Yay!

}

如果您只有 2 個條件要檢查,請使用異或運算符:


if (condition1 ^ condition2) {

    // Yay!

}

JLS 15.22.2。布爾邏輯運算符&, ^, 和|將運算符定義為:


結果值是true操作數值是否不同;否則,結果為false。


查看完整回答
反對 回復 2022-06-30
  • 1 回答
  • 0 關注
  • 150 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號