जावा POJO वस्तुLiveData.getValue() कक्ष के साथ अशक्त रिटर्न
public class Section {
@ColumnInfo(name="section_id")
public int mSectionId;
@ColumnInfo(name="section_name")
public String mSectionName;
public int getSectionId() {
return mSectionId;
}
public void setSectionId(int mSectionId) {
this.mSectionId = mSectionId;
}
public String getSectionName() {
return mSectionName;
}
public void setSectionName(String mSectionName) {
this.mSectionName = mSectionName;
}
}
मेरे क्वेरी विधि
@Query("SELECT * FROM section")
LiveData<List<Section>> getAllSections();
डीबी
final LiveData<List<Section>> sections = mDb.sectionDAO().getAllSections();
तक पहुँचना अगली पंक्ति मैं sections.getValue()
जाँच कर रहा हूँ पर जो हमेशा मुझे शून्य देता है हालांकि मेरे पास डेटाबेस में डेटा है और बाद में मुझेमें मूल्य मिल रहा हैविधि।
sections.observe(this, new Observer<List<Section>>() {
@Override
public void onChanged(@Nullable List<Section> sections){
}
});
लेकिन जब मैं क्वेरी से लाइवडेटा छोड़ देता हूं तो मुझे डेटा अपेक्षित हो रहा है। क्वेरी विधि:
@Query("SELECT * FROM section")
List<Section> getAllSections();
प्रवेश डीबी:
final List<Section> sections = mDb.sectionDAO().getAllSections();
लेकिन आप 'section.getValue()' का उपयोग क्यों करना चाहते हैं, जबकि रहतेटाटा डेटा का निरीक्षण करने के लिए उपयोग किया जाता है। हो सकता है कि जब आप अगली पंक्ति में जांच कर रहे हों, डेटा लाइवटाटा में सेट नहीं है, यही कारण है कि यह आपको शून्य देता है। संक्षेप में यदि आप 'LiveData' का उपयोग नहीं करना चाहते हैं तो बस इसे 'LiveData' के बिना उपयोग करें। – Moinkhan
मैं liveata का उपयोग करना चाहता हूं ... यदि 'section.getValue()' शून्य है तो मुझे डेटा के लिए एपीआई कॉल करना होगा और डेटाबेस में डालना होगा जो अंततः 'ऑन चेंज()' विधि को कॉल करेगा जहां से मुझे डेटा मिलेगा । लेकिन उस 'शून्य' मान के कारण यदि डेटाबेस और एपीआई दोनों से डेटा प्राप्त हो रहा है। – CodeCameo