मेरे पास एक ऐप है जो मूल रूप से एक सर्वेक्षण गतिविधि है। कुछ प्रश्नों के लिए आवश्यक है कि जारी रखने से पहले शर्तों का एक सेट या दूसरा सेट भरा जाए।
जब उपयोगकर्ता हाँ दबाता है तो उन्हें संपादन टेक्स्ट फ़ील्ड का एक सेट मिलता है, यदि वे नहीं दबाते हैं तो उन्हें एक अलग सेट मिलता है। कोई भी विकल्प एक ही जारी रखें बटन को सक्षम करता है, लेकिन मुझे यह जांचना होगा कि अगली गतिविधि को जारी रखने से पहले दो सेटों में से केवल एक भर दिया गया है।
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 भर दिया जाता है, तो टोस्ट "कृपया सभी फ़ील्ड भरें" तक आ जाता है। और उपयोगकर्ता अगली गतिविधि पर नहीं जाता है। यदि 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++;
}
if (count == 1){
Intent toNextActivity = new Intent(getApplicationContext(), QuestionThree.class);
startActivity(toNextActivity);
}
}
1 उत्तर
यदि आपके पास उदा। 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!
}
जेएलएस 15.22.2. बूलियन लॉजिकल ऑपरेटर्स &
, ^
, और |
ऑपरेटर को इस प्रकार परिभाषित करते हैं:
परिणाम मान
true
है यदि ऑपरेंड मान भिन्न हैं; अन्यथा, परिणामfalse
है।
संबंधित सवाल
नए सवाल
java
जावा एक उच्च स्तरीय प्रोग्रामिंग भाषा है। इस टैग का उपयोग तब करें जब आपको भाषा का उपयोग करने या समझने में समस्या हो। इस टैग का उपयोग शायद ही कभी किया जाता है और इसका उपयोग अक्सर [वसंत], [वसंत-बूट], [जकार्ता-ई], [Android], [javafx], [हडूप], [श्रेणी] और [मावेन] के साथ किया जाता है।