URI パラメータを使用できます。
List<String> android.net.Uri.getPathSegments()
たとえば、URI が次の場合:
content://com.mypackage.MyContentProvider/MyTable
MyTable
によって返されるリストに含まれgetPathSegments();
ます。
次に、URI でテーブルを指定する必要があり、プロバイダーの挿入、更新、クエリ、削除メソッドで、URI パラメーターに応じてクエリを作成する必要があります。
URI でのテストを回避するために、プロバイダーに追加できるwitch と呼ばれるAbstractメソッドは、 asを返します。getTableName()
tableName
String
次に、プロバイダーを 5 つのクラスなどに拡張し、Table1Provider
メソッドTable2Provider
を実装します。
Class abstract MyProvider extends ContentProvider{
public abstract String getTableName();
@Override
public Cursor query(Uri uri, String[] projection, String selection,
String[] selectionArgs, String sortOrder) {
///...
// Set the table
queryBuilder.setTables(getTableName());
//...
return cursor;
}
}
class Table1Provider extend MyProvider{
public String getTableName(){
return "Table1";
}
次にTable1Provider
、抽象プロバイダーの代わりに をインスタンス化します。