मेरे पास सूची सूची में एक सूची दृश्य है जो कुछ डेटा से जुड़ा हुआ है। मेरे पास एक सामग्री प्रदाता है जो डेटा प्रदान कर रहा है।एंड्रॉइड लिस्ट व्यू लाइव अपडेट
ListActivity एक सामग्री समाधानकर्ता पूछताछ की डेटा हो जाता है:
Uri uri = Uri.parse("content://my.provider.DocumentProvider/mystuff");
contentCursor = this.getContentResolver().query(uri, null, null, null, null);
तो अब गतिविधि कर्सर है। यह एक एडाप्टर बनाता है और इसे सूची में जोड़ता है:
ListAdapter adapter = new DocumentListCursorAdapter(this, R.layout.main_row_layout, contentCursor, new String[] { "titleColumn" }, new int[] { titleColumnIndex });
setListAdapter(adapter);
यह ठीक काम करता है; सूची कर्सर में डेटा दिखाती है।
लेकिन अब सामग्री प्रदाता के पास नया डेटा है। मैं सूची को नया डेटा दिखाने के लिए अद्यतन करना चाहता हूं।
मेरे द्वारा देखे गए उदाहरणों में एडाप्टर की अधिसूचनाडेटासेट चेंज किया गया है, लेकिन ऐसा लगता है कि यह सामग्री प्रदाता और सूची के बीच अलगाव को तोड़ता है, जो सामग्री का उपभोग कर रहा है।
क्या सामग्री प्रदाता को पता होना चाहिए कि कर्सर से कौन से एडाप्टर जुड़े हुए हैं ताकि यह उनकी अधिसूचनाडेटासेट चेंज विधि को कॉल कर सके? या क्या कोई बेहतर तरीका है जो इन दो चीजों को इस तरह से नहीं देखता है।
क्या आपने http://developer.android.com/reference/android/content/ContentResolver.html#notifyChange%28android.net.Uri,%20android.database.ContentObserver,%20boolean%29 पर देखा है? – Luksprog
मैंने रजिस्टरकंटेंट ऑब्सर्वर के साथ पंजीकरण करने का प्रयास किया था, लेकिन जब कर्सर बदल गया तो कोई बदलाव नहीं आया। क्या यह काम करना चाहिए? – stevex
स्लुकियन के समान ही, आपको 'contentCursor.setNotificationUri (cr, uri) की आवश्यकता हो सकती है; ' – njzk2