Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; WP_MatchesMapRegex has a deprecated constructor in /home/araki/blog.ceed.jp/wp-includes/class-wp.php on line 635

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Translation_Entry has a deprecated constructor in /home/araki/blog.ceed.jp/wp-includes/pomo/entry.php on line 14

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; POMO_Reader has a deprecated constructor in /home/araki/blog.ceed.jp/wp-includes/pomo/streams.php on line 12

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; POMO_FileReader has a deprecated constructor in /home/araki/blog.ceed.jp/wp-includes/pomo/streams.php on line 106

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; POMO_StringReader has a deprecated constructor in /home/araki/blog.ceed.jp/wp-includes/pomo/streams.php on line 150

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; POMO_CachedFileReader has a deprecated constructor in /home/araki/blog.ceed.jp/wp-includes/pomo/streams.php on line 189

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; POMO_CachedIntFileReader has a deprecated constructor in /home/araki/blog.ceed.jp/wp-includes/pomo/streams.php on line 204

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; WP_Widget_Factory has a deprecated constructor in /home/araki/blog.ceed.jp/wp-includes/widgets.php on line 405

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Ad_Generic has a deprecated constructor in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/class-generic.php on line 10

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Ad_AdSense has a deprecated constructor in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/class-adsense.php on line 26

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Ad_AdSense_Classic has a deprecated constructor in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/class-adsense-classic.php on line 19

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Ad_AdSense_Ad has a deprecated constructor in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/class-adsense-ad.php on line 19

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Ad_AdSense_Link has a deprecated constructor in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/class-adsense-link.php on line 19

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Ad_AdSense_Referral has a deprecated constructor in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/class-adsense-referral.php on line 19

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Ad_AdBrite has a deprecated constructor in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/class-adbrite.php on line 20

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Ad_AdGridWork has a deprecated constructor in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/class-adgridwork.php on line 20

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Ad_Adpinion has a deprecated constructor in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/class-adpinion.php on line 21

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Ad_AdRoll has a deprecated constructor in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/class-adroll.php on line 21

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Ad_CJ has a deprecated constructor in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/class-cj.php on line 20

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Ad_Code has a deprecated constructor in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/class-code.php on line 19

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Ad_CrispAds has a deprecated constructor in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/class-crispads.php on line 20

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Ad_ShoppingAds has a deprecated constructor in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/class-shoppingads.php on line 20

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Ad_YPN has a deprecated constructor in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/class-ypn.php on line 20

Deprecated: Methods with the same name as their class will not be constructors in a future version of PHP; Ad_WidgetBucks has a deprecated constructor in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/class-widgetbucks.php on line 20

Notice: Undefined index: adsensem-show-ad in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 280

Notice: wp_enqueue_script was called incorrectly. Scripts and styles should not be registered or enqueued until the wp_enqueue_scripts, admin_enqueue_scripts, or login_enqueue_scripts hooks. Please see Debugging in WordPress for more information. (This message was added in version 3.3.) in /home/araki/blog.ceed.jp/wp-includes/functions.php on line 3361

Deprecated: Non-static method adsensem::init() should not be called statically in /home/araki/blog.ceed.jp/wp-includes/plugin.php on line 470

Deprecated: Non-static method adsensem::setup_is_valid() should not be called statically in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 110

Deprecated: Function create_function() is deprecated in /home/araki/blog.ceed.jp/wp-includes/pomo/translations.php on line 171

Deprecated: Non-static method adsensem::init_widgets() should not be called statically in /home/araki/blog.ceed.jp/wp-includes/plugin.php on line 470

Deprecated: Non-static method adsensem::register_widget() should not be called statically in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 145

Notice: Undefined variable: args in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 145

Notice: Undefined variable: _adsensem in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 162

Deprecated: Non-static method adsensem::register_widget() should not be called statically in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 151

Notice: Undefined variable: args in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 151

Notice: Undefined variable: _adsensem in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 162

Deprecated: Non-static method adsensem::register_widget() should not be called statically in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 151

Notice: Undefined variable: args in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 151

Notice: Undefined variable: _adsensem in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 162

Deprecated: Non-static method adsensem::register_widget() should not be called statically in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 151

Notice: Undefined variable: args in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 151

Notice: Undefined variable: _adsensem in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 162

Deprecated: Non-static method adsensem::register_widget() should not be called statically in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 151

Notice: Undefined variable: args in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 151

Notice: Undefined variable: _adsensem in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 162

Deprecated: Non-static method adsensem::register_widget() should not be called statically in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 151

Notice: Undefined variable: args in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 151

Notice: Undefined variable: _adsensem in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 162
ContentProviderを自動で実装する | CEED
Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/araki/blog.ceed.jp/wp-content/plugins/ultimate_ga_1.6.0/ultimate_ga_1.6.0.php on line 524

ContentProviderを自動で実装する


Deprecated: Non-static method adsensem::filter_ads() should not be called statically in /home/araki/blog.ceed.jp/wp-includes/plugin.php on line 192

Deprecated: Non-static method adsensem::filter_ad_callback() should not be called statically in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 198

Deprecated: Non-static method adsensem::filter_ad_callback() should not be called statically in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 201

Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/araki/blog.ceed.jp/wp-content/plugins/ultimate_ga_1.6.0/ultimate_ga_1.6.0.php on line 524

Notice: Array to string conversion in /home/araki/blog.ceed.jp/wp-content/plugins/ultimate_ga_1.6.0/ultimate_ga_1.6.0.php on line 701

AndroidのContentProviderを実装するのって非常に面倒ですよね。
いつも実装するたびに、「何でこんなめんどくさいんだー!」と愚痴りたくなるのですが、これを自動生成する方法があったので書いておこうと覆います。

EclipseのプラグインでMOTODEV Studioというのがあるのですがこれを利用します。
もともとはAndroid開発用のプラグインのようなのですが、この中にSQLite関係のクラスを自動生成してくれる機能があって、それを利用します。
まずは、Eclipse MarketPlaceでMOTODEV Studioで検索してインストールします。(ユーザー登録を求められたと思います)

次に必要なテーブル定義をしたSQLiteのDBファイルをSQLite用のクライアントツールなどで作成します。(僕は、TkSqliteというのを使っています。)

次に、EclipseのパースペクティブをMOTODEV Databaseに切り替えて、MOTODEV DatabaseExplorerビューの中の、「Create Database Management Classes」というアイコンをクリックします。
すると、設定ダイアログが開きますので、DataBase File の箇所に先ほど作成しておいたSQLiteファイルを指定します。
あとは、必要な箇所を入力して「完了」をクリックすれば、先ほどのテーブル定義に対応したSQLiteOpenHelperクラスとContentProviderクラスを一瞬で生成してくれます。
また、先ほど指定したSQLiteファイルはassets配下にコピーされていて、生成されたSQLiteOpenHelperクラスを見ると、コンストラクターの中で上記のSQLiteファイルを適切な位置、(/data/data/packagename/databases/)にコピーする処理が書かれています。
つまり、DBの初期化時にDBファイルごとコピーしてしまうのですね。なので、必要なレコードを最初からインサートしておいておく、といったことも可能です。

という感じに非常にらくちんな機能なのですが、一つだけ残念な点があって、それは、これで生成されるコンテンツプロバイダーは、各テーブルごとに別々のコンテンツプロバイダーとして生成される、っと言うことです。つまり、ひとつのDBで3つのテーブルがある場合コンテンツプロバイダーも3つになってしまいます。
これで何が問題かというと、OpenHelperも個別になってしまうので、場合によっては、Database locked などのExceptionが発生してしまう可能性があるという点です。
これについては、ちょっと長くなってしまうので別の機会に書きたいと思います。

ちなみに、上記の機能以外にも、スニペットというビューがあって、一般的によく使用するようなコードがスニペットになって並んでいます。エディターにドラッグすることでコードを挿入できるので、こちらも使い方によっては重宝するかもしれないです。(自分は使ってないですが)

Leave a Comment

NOTE - You can use these HTML tags and attributes:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>


Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/araki/blog.ceed.jp/wp-content/plugins/ultimate_ga_1.6.0/ultimate_ga_1.6.0.php on line 524

Deprecated: Non-static method adsensem::footer() should not be called statically in /home/araki/blog.ceed.jp/wp-includes/plugin.php on line 470
getting health insurance in new york buy clomid online UK major health insurance companies buy levitra uk online what are wells fargo hours buy finasteride affordable health insurance for children accutane no prescription medical center of trinity viagra online uten resept midwestern university wellness center dapoxetine top individual health insurance companies viagra ireland

Warning: Use of undefined constant user_level - assumed 'user_level' (this will throw an Error in a future version of PHP) in /home/araki/blog.ceed.jp/wp-content/plugins/ultimate_ga_1.6.0/ultimate_ga_1.6.0.php on line 524