2010-05-11 11 views
32

से डेटा पुनर्प्राप्त कैसे करें मुझे कर्सर से डेटा पुनर्प्राप्त करने का तरीका पता होना चाहिए। मुझे इसकी आवश्यकता है क्योंकि रिंगटोनेंजर कर्सर ऑब्जेक्ट के रूप में सभी ऑडियो फाइलों को लौटाता है, मुझे यह जानने की जरूरत है कि मूल्यों को कैसे प्राप्त किया जाए।कर्सर कक्षा

Anbudan।

+0

बस एपीआई में दिया दस्तावेज़ पढ़ें /database/Cursor.html या एक अच्छा ट्यूटोरियल है: http://developer.android.com/guide/tutorials/notepad/index.html यह प्रश्न शायद आपकी मदद कर सकता है: http://stackoverflow.com/questions/ 903343/कर्सर-get-the-field-value-android – RoflcoptrException

उत्तर

108

एक बार जब आप कर्सर वस्तु है, तो आप कुछ इस तरह कर सकते हैं:

if (cursor.moveToFirst()){ 
    do{ 
     String data = cursor.getString(cursor.getColumnIndex("data")); 
     // do what ever you want here 
    }while(cursor.moveToNext()); 
} 
cursor.close(); 
+0

यहां एक ")" गायब है: स्ट्रिंग डेटा = कर्सर.getString (कर्सर। getColumnIndex ("डाटा")); । अपने जवाब को पूरा करने के लिए गंभीर नहीं है। – JJ86

+0

क्या मैं इस अर्थ में सही हूं कि भले ही आप केवल एक पंक्ति की उम्मीद कर रहे हों, आपको कर्सर.मोव टॉफ़र्स्ट() को कॉल करने की आवश्यकता है, अन्यथा डेटा युक्त सरणी हमेशा खाली रहेगी ??? – AntonSack

+1

मैं बात करता हूं "! कर्सर.इस आफ्टरलास्ट()" आपके कुछ लूप में रहना चाहिए, "कुछ नोब छात्र" के रूप में, अन्यथा यह विज्ञापन अनंत लूप का कारण बन जाएगा। – Redauser

14

साल्वाडोर के जवाब अंतिम पंक्ति के बाद पंक्ति से डेटा लाने क्योंकि moveToNext() केवल अवास्तविक लौटाते हैं जब कर्सर इंगित है जारी रहेगा आखिरी पंक्ति के बाद पंक्ति में। कर्सर आखिरी पंक्ति पर इंगित कर रहा है, भले ही यह फिर से जारी रहेगा।

सही टेम्पलेट होना चाहिए:

if (cursor.moveToFirst()){ 
    while(!cursor.isAfterLast()){ 
     String data = cursor.getString(cursor.getColumnIndex("data")); 
     // do what ever you want here 
     cursor.moveToNext(); 
    } 
} 
cursor.close(); 
20

इसमें कुछ समय बेहतर लग रहा है: http://developer.android.com/reference/android:

for (cursor.moveToFirst(); !cursor.isAfterLast(); cursor.moveToNext()) { 
    ... 
}