2013-02-11 34 views
11

मैं कर्सर से ListView तक डेटा प्रदर्शित करने के लिए बहिष्कृत SimpleCursorAdapter का उपयोग कर रहा हूं। मैंने अतिरिक्त तर्क 0 जोड़ा है, जो ड्रेप्रिकेटेड चेतावनी को हटा देता है, लेकिन मैं डेटा प्रदर्शित करने के लिए एक बेहतर तरीका उपयोग करना चाहता हूं। मैंने Loader के बारे में कुछ पढ़ा है, लेकिन यह नहीं पता कि इसे कैसे कार्यान्वित किया जाए। नीचे दिए गए कोड का बेहतर विकल्प क्या होगा? लोडर का उपयोग करने के लिए इस कोड का अनुवाद कैसे किया जाएगा?SimpleCursorAdapter वैकल्पिक

Cursor c = mDbHelper.getAllRecords(); 
    startManagingCursor(c); //this is also deprecated 

    String[] from = new String[] { "Name" }; 
    int[] to = new int[] { R.id.text1 }; 

    SimpleCursorAdapter names = 
     new SimpleCursorAdapter(this, R.layout.names_row, c, from, to, 0); 
    setListAdapter(names); 
+0

"लेकिन मैं डेटा प्रदर्शित करने के लिए एक बेहतर तरीका उपयोग करना चाहता हूं।" एक लोडर केवल आपके डेटाबेस से डेटा को किसी अन्य थ्रेड पर पढ़ता है, यह डेटा प्रदर्शित होने के तरीके को नहीं बदलता है। इसे प्रदर्शित करने के तरीके को बदलने के लिए आपको 'names_row.xml' को बदलना चाहिए। – Sam

+0

प्रश्न संपादित किया गया। – domen

+1

लोडर पर स्विचिंग केवल एंड्रॉइड कक्षाओं का उपयोग करके एक मामूली मामला नहीं है। आपको पहले सामग्री प्रदाता बनाने की आवश्यकता है और फिर लोडर ढांचे को लागू करना होगा। हालांकि [CommonsWare] (http://stackoverflow.com/u/115145/) ने लिखा है [एक लोडर लाइब्रेरी] (https://github.com/commonsguy/cwac-loaderex) जिसमें ContentProviders की आवश्यकता नहीं है। यहां [एक ट्यूटोरियल] है (http://www.grokkingandroid.com/using-loaders-in-android/) जिसमें दोनों दृष्टिकोण शामिल हैं। – Sam

उत्तर

6

adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_2, cursor, from, to, 1);

यह स्वत: requery करना होगा देखते हैं। 1 सत्य पर सेट है और 0 झूठी है।