2012-09-18 16 views
14

मैं एक नौसिखिया एंड्रॉइड प्रोग्रामर हूं और मैंने हाल ही में एक ट्यूटोरियल का पालन किया जो दिखाता है कि स्थानीय SQLite डेटाबेस कैसे बनाएं और फिर कर्सर को वापस करने के लिए SQLiteDatabase.rawQuery का उपयोग कर डेटाबेस तक पहुंचें। मैं कर्सर लोडर का उपयोग करने के लिए अपने ऐप को संशोधित करना चाहता हूं जो डेटाबेस तक पहुंचने का एक बेहतर तरीका है। मेरी समस्या कर्सर लोडर कन्स्ट्रक्टर एक यूआरआई देने की अपेक्षा करता है। क्या मैं सिर्फ इनपुट करता हूं "फ़ाइल: /// [डीबी के लिए पथ]"? थोड़ा गन्दा लगता है।कर्सर लोडर, स्थानीय डेटाबेस के लिए यूआरआई प्राप्त करें

+0

आपको पूर्णता – Merlin

उत्तर

7

यूआरआई को स्वीकार करने वाले कर्सर लोडर के पीछे कारण यह है कि यह एक सामग्री से पूछताछ करने की अपेक्षा करता है प्रदाता और कच्चे डेटाबेस नहीं।

तो मेरा सुझाव है कि आप एक सामग्री प्रदाता बनाते हैं जो आंतरिक रूप से आपके डेटाबेस का उपयोग करता है, ताकि आप सीधे कर्सर लोडर क्लास का उपयोग कर सकें।

सामग्री प्रदाता का उपयोग करने का लाभ यह है कि यह आपके डेटा को बेहतर ढंग से समाहित करता है और आप सीधे एंड्रॉइड से बहुत सारे एपिस का लाभ उठा सकते हैं।

यहाँ कैसे एक सामग्री प्रदाता

http://developer.android.com/guide/topics/providers/content-provider-creating.html

http://thinkandroid.wordpress.com/2010/01/13/writing-your-own-contentprovider/

बनाने के लिए आप डेटा क्वेरी करने के लिए सीधे एक ContentProvider आप AsyncTaskLoader विस्तार कर सकते हैं या कर्सर लोडर बनाने के लिए नहीं चुनते हैं पर कुछ मार्गदर्शक हैं जिस तरह से आप चाहते हैं।

+0

के लिए ट्यूटोरियल में लिंक पोस्ट करना चाहिए धन्यवाद यह थोड़ा सा मदद करता है। – user1681358

3

CommonsWare की LoaderEx लाइब्रेरी पर एक नज़र डालें। यह आपको स्थानीय SQLiteDatabase के साथ Loader का उपयोग करने की अनुमति देता है, इसलिए आपको अपना खुद का ContentProvider बनाने की सभी परेशानी नहीं है।

+1

मैं कम से कम अपना खुद का ContentProvider कार्यान्वयन काम करना चाहता हूं, क्योंकि यह चीजों को करने का 'मानक' तरीका प्रतीत होता है, भले ही यह छोटे स्टैंडअलोन ऐप्स के लिए ओवरलैब हो। लेकिन जब मैं मूल बातें समझता हूं तो मुझे इस बिंदु पर कुछ लाइब्रेरी दिखाई देगी। – user1681358

+0

गिट से: 'इस परियोजना को अस्वीकार कर दिया गया है। अपने जोखिम पर इसका इस्तेमाल करो। यदि आप सार्वजनिक फोर्क बनाए रखते हैं कि आप दूसरों को उपयोग करने पर विचार करना चाहते हैं, तो इस रीडमे से अपने कांटे के लिंक के लिए एक समस्या पूछने के लिए एक समस्या जोड़ें। – zeroDivider

संबंधित मुद्दे