मैं एमवीपी आर्किटेक्चर का उपयोग करके एंड्रॉइड ऐप में एक स्क्रीन को लागू करने और व्यू तरफ आरएक्सजेवा और आरएक्सबाइंडिंग का उपयोग करने की कोशिश कर रहा हूं।एंड्रॉइड ऐप में आरएक्सजेवा और एमवीपी
असल में मेरे पास 2 स्पिनर, 1 टेक्स्ट एडिट और एक बटन जो डिफ़ॉल्ट रूप से अक्षम है। मैं बटन को सक्षम करना चाहता हूं जब स्पिनरों के पास आइटम चुने जाते हैं और टेक्स्ट फ़ील्ड खाली नहीं होता है। यहाँ कोड है:
Observable.combineLatest(
RxAdapterView.itemSelections(mFirstSpinner),
RxAdapterView.itemSelections(mSecondSpinner),
RxTextView.textChanges(mEditText),
new Func3<Integer, Integer, CharSequence, Boolean>() {
@Override
public Boolean call(Integer first, Integer second, CharSequence value) {
return !TextUtils.isEmpty(value);
}
}).subscribe(new Action1<Boolean>() {
@Override
public void call(Boolean enable) {
mButton.setEnabled(enable);
}
});
अब सवाल एकीकृत करने की विधि है कि एमवीपी स्वरूप में है। आदर्श रूप से बटन को सक्षम करने का "व्यावसायिक तर्क" प्रस्तुतकर्ता में होना चाहिए। इसे प्राप्त करने का सबसे अच्छा तरीका क्या है? मैं मूल पर्यवेक्षकों को प्रस्तुतकर्ता में किसी भी तरह से पारित करने की सोच रहा हूं (साइड सवाल कैसे है?), और प्रस्तुतकर्ता उन पर्यवेक्षकों को जोड़ देगा और इसमें बटन को सक्षम करने का तर्क होगा। अंत में, यह केवल बटन स्थिति को संशोधित करने के लिए दृश्य को कॉल करेगा।
क्या कोई बेहतर विकल्प हैं? क्या आरएक्सजेवा के साथ व्यू साइड पर एमवीपी का कोई अच्छा उदाहरण है?
यह उस दृष्टिकोण के समान है जो मैंने सुझाया और कार्यान्वित किया। केवल अंतर यह है कि मैं दृश्य पक्ष पर संयोजन के बजाय प्रस्तुति के लिए 3 अलग पर्यवेक्षकों को पास करता हूं।उनमें से 3 संयोजन भी "व्यापार" तर्क का प्रकार है। भविष्य में हम केवल 2 फ़ील्ड का उपयोग करना चाहेंगे, या कुछ और जोड़ सकते हैं। –