मैं नए एंड्रॉइड डेटा बाइंडिंग का उपयोग कर रहा हूं और यह बहुत अच्छा काम करता है। मैं एडिटटेक्स्ट, टेक्स्ट व्यू, रेडियो और चेकबॉक्स का उपयोग कर डेटा बाइंडिंग करने में सक्षम हूं। अब, मैं स्पिनर में डाटाबेसिंग करने में सक्षम नहीं हूं। Android spinner data binding with xml layoutएंड्रॉइड स्पिनर डेटा एक्सएमएल का उपयोग कर बाध्यकारी और चयनित मान दिखाएं
लेकिन, फिर भी समाधान खोजने के लिए सक्षम नहीं:
नीचे दिए गए लिंक में कुछ सुराग मिले। दो तरह से डाटाबेसिंग करने की भी आवश्यकता है। स्पिनर डेटा चयनित मूल्य को प्रतिबिंबित करना चाहिए।
क्या कोई मुझे उदाहरण के साथ दिखा सकता है?
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/tools"
xmlns:card_view="http://schemas.android.com/apk/res-auto">
<data>
<import type="android.view.View" />
<variable
name="viewModel"
type="com.ViewModels.model" />
</data>
<Spinner
android:id="@+id/assessmemt_spinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_margin="@dimen/carview_margin"
android:layout_toRightOf="@+id/text_bp"
android:drawSelectorOnTop="true"
android:spinnerMode="dropdown"
android:visibility="@{viewModel.type.equals(@string/spinner_type)? View.VISIBLE : View.GONE}" />
</layout>
देखें मॉडल::
यहाँ मेरी xml
कोड है
public class AssessmentGetViewModel {
private String valueWidth;
private ArrayList<String> values;
private String type;
public String getValueWidth() { return this.valueWidth; }
public void setValueWidth(String valueWidth) { this.valueWidth = valueWidth; }
public ArrayList<String> getvalues() { return this.values; }
public void setvalues(ArrayList<String> values) { this.values = values; }
public String gettype() { return this.type; }
public void settype(String type) { this.type = type; }
}
मैं इस से एक NullPointerException मिल , newTextAttrChanged शून्य है, भले ही आपने कहा कि यह –
^^ शायद आप अपने xml में "@" के बाद "@" गायब हैं। यह 'बांधना चाहिए: चयनित वैल्यू = "@ = {viewModel.text}" ' –