0

Content_Provider を構築しようとしていますが、Base_path で行き詰っています....

たとえば、次のようなテーブル名の到着があります。ここに画像の説明を入力

CONTENT_URI に名前を付けるにはどうすればよいですか? 誰でも私を助けることができますか?

前もって感謝します !

4

1 に答える 1

0

ドキュメントから:

コンテンツURIURI、プロバイダ内のデータを識別する です。コンテンツ URI には、プロバイダー全体の記号名 (その機関) と、テーブルを指す名前 (パス) が含まれます。クライアント メソッドを呼び出してプロバイダー内のテーブルにアクセスする場合、テーブルのコンテンツ URI が引数の 1 つになります。

上記のコード行では、定数にユーザー辞書の「単語」テーブルのCONTENT_URI内容が含まれています。URIContentResolver オブジェクトは URI の権限を解析し、それを使用して、既知のプロバイダーのシステム テーブルと権限を比較することで、プロバイダーを "解決" します。その後、ContentResolver はクエリ引数を正しいプロバイダーにディスパッチできます。

ContentProvider は、コンテンツ URI のパス部分を使用して、アクセスするテーブルを選択します。通常、プロバイダーには、公開する各テーブルのパスがあります。

コードの前の行ではURI、「words」テーブルの完全な内容は次のとおりです。

content://user_dictionary/words ここで、user_dictionarystring はプロバイダーの機関であり、words string はテーブルのパスです。文字列 content:// (スキーム) は常に存在し、これを content として識別しますURI

したがって、 にはcontent_uriと がありauthorityますbase_path。はContentResolver、パーツを使用しauthorityて選択するプロバイダーを決定し、パーツを使用base_pathしてデータを提供するテーブルを決定します。したがって、単純化すると、base_path通常はプロバイダー内の特定のテーブルのパスです。

詳細については、このガイドを参照し、このチュートリアルも実行してください。

于 2012-10-29T05:44:43.977 に答える