मैं <path_to_SDK>/samples/android-16/NotePad/src/com/example/android/notepad
में एंड्रॉइड नोटपैड एप्लिकेशन नमूना कोड देख रहा हूं।सामग्री प्रदाता में एंड्रॉइड प्रक्षेपण मानचित्र का उद्देश्य क्या है?
मैं सोच रहा था कि कोई मुझे बता सकता है कि NotepadProvider.java
में निम्न कोड की आवश्यकता क्यों है?
...
SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
qb.setTables(NotePad.Notes.TABLE_NAME);
/**
* Choose the projection and adjust the "where" clause based on URI pattern-matching.
*/
switch (sUriMatcher.match(uri)) {
// If the incoming URI is for notes, chooses the Notes projection
case NOTES:
qb.setProjectionMap(sNotesProjectionMap);
break;
...
इस प्रक्षेपण नक्शा क्यों की जरूरत है:
// Creates a new projection map instance. The map returns a column name
// given a string. The two are usually equal.
sNotesProjectionMap = new HashMap<String, String>();
// Maps the string "_ID" to the column name "_ID"
sNotesProjectionMap.put(NotePad.Notes._ID, NotePad.Notes._ID);
// Maps "title" to "title"
sNotesProjectionMap.put(NotePad.Notes.COLUMN_NAME_TITLE,NotePad.Notes.COLUMN_NAME_TITLE);
// Maps "note" to "note"
sNotesProjectionMap.put(NotePad.Notes.COLUMN_NAME_NOTE, NotePad.Notes.COLUMN_NAME_NOTE);
// Maps "created" to "created"
sNotesProjectionMap.put(NotePad.Notes.COLUMN_NAME_CREATE_DATE, NotePad.Notes.COLUMN_NAME_CREATE_DATE);
// Maps "modified" to "modified"
sNotesProjectionMap.put(
NotePad.Notes.COLUMN_NAME_MODIFICATION_DATE,
NotePad.Notes.COLUMN_NAME_MODIFICATION_DATE)
मैं प्रक्षेपण नक्शा बाद में query()
विधि में प्रयोग किया जाता है नोटिस?
के लिए दस्तावेज़ 'SQLiteQueryBuilder.setProjectionMap()' एक अच्छा व्याख्या है। – Luksprog
धन्यवाद। हो सकता है कि मेरा प्रश्न पर्याप्त स्पष्ट न हो - मैं समझता हूं कि प्रक्षेपण मानचित्र क्या है, लेकिन मैं सोच रहा था कि प्रक्षेपण मानचित्र का क्या बिंदु है जिसमें केवल समान कुंजी और मूल्य वाले मैपिंग शामिल हैं (मैं समझता हूं कि कम से कम एक मैपिंग्स एक अलग कुंजी, मूल्य जोड़ी थी)। – Mewzer
यह एक नमूना अनुप्रयोग है, जो कि 'एपीआई' उपयोग और उन 'एपीआई' का उपयोग करके अच्छी प्रथाओं का एक उदाहरण होना चाहिए, इस तरह वे शायद प्रक्षेपण मानचित्र का उपयोग करते हैं। उदाहरण के लिए, यदि मुझे सही याद है, तो Google इंजीनियरों में से एक द्वारा बनाए गए 'शेल्व' एप्लिकेशन अपने 'ContentProvider' में प्रक्षेपण मानचित्र का उपयोग कर रहे हैं और प्रक्षेपण मानचित्र समान कुंजी-मूल्य जोड़े के साथ एक साधारण मैपिंग नहीं है। – Luksprog