2013-05-10 32 views
0

考慮:上面顯示的內容提供商使用在我的SQLite數據庫ContentProvider數據庫變量,它們放在哪裏?

public static final String NOTE_ID = "_id"; 
public static final String TITLE = "title"; 
public static final String TEXT = "text"; 

3列,其中我在下面的代碼把這些?最好的地方在哪裏?

以及我應該在擴展BaseColumns的NoteItems類中放置什麼?

有點困惑在哪裏放什麼。

public class ProviderExample extends ContentProvider { 

private static final String DATABASE_NAME = "notes.db"; 
private static final int DATABASE_VERSION = 1; 
private static final String TABLE_NAME = "notes"; 
public static final String AUTHORITY = "package com.example.contentproviderexample.providerexample"; 

public static final UriMatcher sUriMatcher; 

private static final int NOTES = 1; 

private static final int NOTES_ID = 2; 

public static final Uri CONTENT_URI = Uri.parse("content://" 
     + AUTHORITY + "/notes"); 

    static final String SINGLE_RECORD = "vnd.android.cursor.item/vnd.example.providerexample"; 
    static final String MULTIPLE_RECORDS = "vnd.android.cursor.dir/vnd.example.providerexample"; 

static { 
     sUriMatcher = new UriMatcher(UriMatcher.NO_MATCH); 
     sUriMatcher.addURI(AUTHORITY, TABLE_NAME, NOTES); 
     sUriMatcher.addURI(AUTHORITY, TABLE_NAME + "/#", NOTES_ID); 
    } 

    public static interface NoteItems extends BaseColumns { } 

    private static class DatabaseHelper extends SQLiteOpenHelper{ 
    DatabaseHelper(Context context) 
    { 
    super(context, DATABASE_NAME, null, DATABASE_VERSION); 
    } 

    @Override 
    public void onCreate(SQLiteDatabase db) {} 

    @Override 
    public void onUpgrade(SQLiteDatabase arg0, int arg1, int arg2) { 
     // TODO Auto-generated method stub 
    } 
} // DatabaseHelper 

編輯:

我縮小選擇範圍。它看起來像2個地方最好放這個代碼。一個是ProviderExample內部擴展ContentProvider類以及其他變量,另一個位置是DatabaseHelper內部擴展SQLiteOpenHelper類,兩者都有可能,但我不知道哪兩個地方更加正確。我找到了兩種使用方式的例子。

+0

請不要添加的Android的問題標題,標籤訪問它們在底部就足夠了。 – Luksprog 2013-05-10 10:52:07

回答

1

我上面顯示的sqlite數據庫中的3列用於內容 提供程序,我在哪裏把它們放在下面的代碼中?哪裏是最好的 的地方?

以及我應該在擴展BaseColumns的NoteItems類中放置什麼?

這實際上並不是要回答的問題。我可以說把他們放在課堂的底部,我懷疑這會對你有幫助。

當使用ContentProvider一個好主意是使用其中Contract類/接口把所有的供應商有關的常數方便地訪問/修改,也爲(可能的)公開發布(如果允許使用的供應商由其他應用程序)。這部分在Android開發人員網站上提供的guide for providers中涵蓋,我強烈建議您閱讀。

我會移動NotesItems接口在自己的文件,並把所有的常量在它(至少你提到的那些),並使用NotesItems._ID

相關問題