2013-05-10 111 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

相关问题