为自定义合同构建CONTENT_URI

时间:2014-07-12 21:24:33

标签: android android-contentprovider

Android的文档提供了一个如何从Loader填充列表的示例,特别是从联系人数据库填写列表。他们使用这个电话:

// Called when a new Loader needs to be created
public Loader<Cursor> onCreateLoader(int id, Bundle args) {

    return new CursorLoader(this, ContactsContract.Data.CONTENT_URI,
            PROJECTION, SELECTION, null, null);
}

我已经编写了自己的自定义PeerDatabaseContract

public class PeerDatabaseContract {
    private PeerDatabaseContract() {}

    public static abstract class PeerEntry implements BaseColumns {
        public static final String TABLE_NAME = "peers";
        public static final Uri CONTENT_URI; // Instantiation?

        public static final String COLUMN_NAME_PEER_ID = "userid";
        public static final String COLUMN_NAME_PEER_NAME = "name";
    }
}

我想以与ContactsContract类似的方式使用它,并在列表中使用它。假设我的内容提供商的权限是com.thirtythreeforty.peerapp.authority

如何定义CONTENT_URI以便我可以简单地从中构建CursorLoader,如示例所示?

1 个答案:

答案 0 :(得分:1)

选项#1:使用Uri.parse("content://com.thirtythreeforty.peerapp.authority/whatever/else/you/need")

选项#2:使用Uri.Builder从组件

构建Uri