तो onUpdate विधि क्रम विजेट में सूचीदृश्य करने के लिए एडॉप्टर लागू करने के लिए कहता हैAndroid होम स्क्रीन विजेट: RemoteViews setRemoteAdapter (...) विधि एपीआई पर काम नहीं कर 11+
remoteViews.setRemoteAdapter(id, R.id.listview, intent)
।
विजेट के शीर्षलेख में एक बटन है जो बदल सकता है कि कौन सा डेटा सेट सूचीदृश्य द्वारा प्रदर्शित किया जाता है (एक hypothetical ईमेल विजेट के लिए इनबॉक्स, आउटबॉक्स, तारांकित, आदि सोचें)। जब मैं उस बटन पर क्लिक करता हूं, तो यह उपयोगकर्ता को एक गतिविधि में ले जाता है जो उन्हें यह चुनने की अनुमति देता है कि कौन सा डेटा सेट प्रदर्शित करना है। जब चयन किया जाता है, निम्नलिखित कोड चलता है:
Intent intent = new Intent(this, WidgetReceiver.class);
intent.setAction("android.appwidget.action.APPWIDGET_UPDATE");
intent.putExtra("notify", true);
intent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_IDS, new int[] {R.xml.widget_provider});
sendBroadcast(intent);
यह सफलतापूर्वक विजेट के AppWidgetProvider कक्षा में onUpdate प्रणाली को बुलाती है। हालांकि, अगर मैं विभिन्न प्रकार के डेटा सेटों के बीच टॉगल करना चाहता था, 2-3 प्राथमिकता परिवर्तनों के बाद, setRemoteAdapter
विधि बस कार्य करना बंद कर देती है। मैंने प्रक्रिया को व्यापक रूप से लॉग किया है, और विधि, जो एक सेवा को कॉल करने वाली है, जो बदले में RemoteViewsService.RemoteViewsFactory
कक्षा को विजेट और उसके एडाप्टर को पॉप्युलेट करने के लिए लोड करती है, इन चीजों में से कोई भी काम नहीं करती है। पहली बार जब आप वरीयता बदलते हैं, तो यह अपेक्षा के अनुसार काम करता है। लेकिन बाद में यह छोड़ देता है।
क्या किसी के पास कोई संकेत है कि यहां क्या हो रहा है?
HI जेएमआरबोस्टीज़। क्या आप अपना कोड साझा करने के लिए बहुत दयालु होंगे? मैं होमस्क्रीन विजेट में लिस्ट व्यू डालने की कोशिश भी कर रहा हूं और कुछ बटनों के साथ एक हेडर जोड़ रहा हूं (जो सूची डेटा द्वारा कौन सा डेटा सेट प्रदर्शित होता है) बदल सकता है। मैं हेडर बटन पर क्लिक पंजीकृत करने और सूचीदृश्य अपडेट करने में कठिनाइयों को हल कर रहा हूं। Txs – Hubert
ऐसा लगता है कि सभी अपडेट्स के लिए ऐसा होता है - अंततः एंड्रॉइड ऊब जाता है और मानता है कि आपके पास सही परिणाम हैं:/धन्यवाद @ जेएमआरबोस्टीज़ :) – Graeme
यह अपग्रेड करते समय काम नहीं करता है और आपका ऐप एक नए संस्करण द्वारा प्रतिस्थापित किया गया है, कोई सुझाव इसे हल करने के लिए? – 2cupsOfTech