2011-06-03 15 views
9

ContentProvider लागू करते समय सभी यूरिस को परिभाषित करने के लिए प्रलेखन में विशिष्ट अनुशंसा है। लेकिन मैं यूआरआई मिलान भाग के साथ भ्रमित कर रहा हूँ: उदाहरण के लिए, मैं पैकेज org.company.example, टेबल 'आइटम' नाम दिया, तो मैं परिभाषितसामग्री प्रदाता यूआरआई matcher

public static final Uri CONTENT_URI = 
    Uri.parse("content://org.company.example.sampleprovider/items"); 

मिल गया है और मैं स्थिर init में यूआरआई मिलान के लिए क्या अधिकार हिस्सा उपयोग करना चाहिए:

private static final UriMatcher uriMatcher; 

    static { 
    uriMatcher = new UriMatcher(UriMatcher.NO_MATCH); 
    uriMatcher.addURI("what goes here?", "items", ITEM); 
    uriMatcher.addURI("what goes here?", "items/#", ITEM_ID); 
    } 

उत्तर

14
public static final String PROVIDER_NAME = "org.company.example.sampleprovider"; 
public static final Uri CONTENT_URI = Uri.parse("content://" + PROVIDER_NAME); 
private static final UriMatcher uriMatcher; 
static { 
    uriMatcher = new UriMatcher(UriMatcher.NO_MATCH); 
    uriMatcher.addURI(PROVIDER_NAME, "items", ITEM); 
    uriMatcher.addURI(PROVIDER_NAME, "items/#", ITEM_ID); 
} 
+0

मेरी CONTENT_URI तालिका करने के लिए पथ नहीं शामिल करना चाहिए? –

+1

आपको नहीं करना है, लेकिन यह संभव है। यह आपके लिए तय करना है। मेरे कंटेंट प्रदाताओं को पहले से ही "बुक्सप्रोवाइडर" नाम दिया गया है, इसलिए मुझे उपयोगकर्ता को स्पष्ट करने के लिए अतिरिक्त "/ किताबें" जोड़ने की ज़रूरत नहीं है जो प्रदाता करता है। –

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