2013-01-16 13 views
5

में आंतरिक कक्षा को परिभाषित करने के लिए मैं एंड्रॉइड में SQLite सीख रहा हूं। SQLite के लिए मैं डेवलपर reandering हूँ .android.com। लेकिन कोड पढ़ने के दौरान मुझे कुछ भ्रम मिला। उन्होंने FeedReaderContract कन्स्ट्रक्टर को FeedReaderContract कक्षा को तुरंत चालू करने के लिए लिखा है लेकिन वे FeedReaderContract कक्षा को कहीं भी परिभाषित नहीं करते हैं और FeedReaderContract और FeedEntry के बीच संबंध परिभाषित नहीं करते हैं।FeedReaderContract का उद्देश्य क्या है और ओपनहेल्पर क्लास

Here's link जिसका मैं जिक्र कर रहा हूं। मैं कोड प्रदान करता हूं। मैं ओपनहेपर कक्षा में आंतरिक कक्षा को कैसे परिभाषित कर सकता हूं। क्या कोई मुझे अच्छा तरीका सुझा सकता है?

उदाहरण के लिए, इस स्निपेट को केवल एक मेज के लिए तालिका नाम और स्तंभ नाम को परिभाषित करता है:

public static abstract class FeedEntry implements BaseColumns 
{ 
    public static final String TABLE_NAME = "entry"; 
    public static final String COLUMN_NAME_ENTRY_ID = "entryid"; 
    public static final String COLUMN_NAME_TITLE = "title"; 
    public static final String COLUMN_NAME_SUBTITLE = "subtitle"; 
    ... 
} 

, गलती से अनुबंध वर्ग instantiating से किसी को रोकने के लिए यह एक खाली निर्माता दे।

//Prevents the FeedReaderContract class from being instantiated. 
private FeedReaderContract() {} 
+0

मैं आपके प्रश्न को समझ नहीं सकता। आप किस कोड को समझाया जाना चाहते हैं? आपके द्वारा लिंक किए गए आलेख में कोड आलेख में समझाया गया है। (उदाहरण के लिए, आलेख आपके द्वारा उद्धृत किए गए पहले कोड अनुभाग का वर्णन करता है, "यह स्निपेट तालिका तालिका और कॉलम नामों को एक तालिका के लिए परिभाषित करता है"। आप और क्या जानना चाहते हैं?) –

+0

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

उत्तर

4

मैं के रूप में समझते हैं:

public static class FeedReaderContract{ 

    // Prevents the FeedReaderContract class from being instantiated. 
    private FeedReaderContract() {} 

    //The FeedEntry table definition 
    public static abstract class FeedEntry implements BaseColumns { 
     public static final String TABLE_NAME = "entry"; 
     public static final String COLUMN_NAME_ENTRY_ID = "entryid"; 
     public static final String COLUMN_NAME_TITLE = "title"; 
     public static final String COLUMN_NAME_SUBTITLE = "subtitle"; 
     ... 
    } 

    //more tables definition 
} 

तो तुम अनुबंध instatiate नहीं कर सकता है, लेकिन सभी इनर क्लासों स्थिरांक उपयोग कर सकते हैं।

private static final String SQL_CREATE_ENTRIES = 
"CREATE TABLE " + FeedReaderContract.FeedEntry.TABLE_NAME + " (" + 
FeedReaderContract.FeedEntry._ID + " INTEGER PRIMARY KEY," //continues 

पहुँच FeedEntryFeedReaderContract कक्षा में स्थिरांक (TABLE_NAME और _ID) भीतरी वर्ग की: उदाहरण के लाइन की तरह।

उम्मीद है कि यह मदद करता है।

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