2010-11-21 11 views
49

क्या कोई यह जान सकता है कि मैं डिबगिंग के दौरान कर्सर में क्या देख सकता हूं ताकि मैं अपने डेटाबेस सहायक की कार्यक्षमता निर्धारित कर सकूं?एक एंड्रॉइड डेटाबेस कर्सर को देखकर

ऐसा लगता है कि यह डेटा लौटा रहा है अभिनय रहता है, लेकिन फिर जब मैं cursor.isNull(0) विधि का उपयोग करने का प्रयास, मैं NullPointerException फेंक दिया हो रही है और क्या कर्सर उस में है, जबकि निष्पादन के माध्यम से कदम वास्तव में मुझे निराशा होती है देखने के लिए सक्षम नहीं किया जा रहा रखने के लिए।

किसी भी मदद की अत्यधिक सराहना की जाएगी।

धन्यवाद।

उत्तर

-6

यदि यह शून्य सूचक अपवाद है, तो ऐसा लगता है कि आपका कर्सर वास्तव में शून्य है।

मैं अपने कर्सर डीबग करने में सहायता के लिए Log.d() का उपयोग करूंगा, आप बस अपने कर्सर की पूरी पंक्ति को लॉगकैट पर डंप करने के लिए एक सहायक विधि बना सकते हैं।

+0

लॉग.d ("col 0" + mcursor.getLong (0) + ", col1" + mCursor.getLong (1)); और इतने पर ... – xandy

+0

ठीक है ... तो, जब मैं ऐसा करने की कोशिश करता हूं; लॉग.d ("गतिविधि.cursor", "col 0:" + cursor.getLong (0)); यह दुर्घटनाग्रस्त हो जाता है। जब मैं इसे आज़माता हूं; लॉग.d ("गतिविधि.cursor", "col 0:" + cursor.getCount()); यह कहता है कि कॉल 0: 1 यह कैसे शून्य हो सकता है? – Skittles

+30

मुझे लगता है कि मुझे आवश्यक उत्तर मिला। स्पष्ट रूप से यह वास्तव में भयानक वर्ग है जो मुझे हैशटेबल के रूप में सटीक कर्सर सामग्री देखने देता है। DatabaseUtils.dumpCursor (कर्सर); वैसे भी मदद के लिए धन्यवाद, xandy। :) – Skittles

269

एंड्रॉइड ने सिर्फ कर्सर को डिबग करने के लिए एक विशिष्ट श्रेणी प्रदान की है। इसे DatabaseUtils कहा जाता है।

अपने कर्सर की सामग्री देखने के लिए विधि DatabaseUtils.dumpCursorToString(cursor) पर कॉल करें।

यह सहायक आपके लिए कर्सर की सामग्री को छूता है और प्रिंट करता है, और कर्सर को अपनी मूल स्थिति में वापस कर देता है ताकि यह आपके पुनरावृत्ति तर्क को गड़बड़ न करे।

+46

यह स्वीकार्य उत्तर क्यों नहीं है? – Mirko

+5

यह निश्चित रूप से सही उत्तर है। – suomi35

+3

ऐसा इसलिए है क्योंकि यह एकमात्र उत्तर था और @Skittles खुद को इस उत्तर पोस्ट करने से 2 साल पहले डेटाबेस उपयोग के बारे में मिला। –

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