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

Strict Standards: Redefining already defined constructor for class SyntaxHighlighter in /home/araki/blog.ceed.jp/wp-content/plugins/syntax-highlighter/syntax_highlighter.php on line 118

Strict Standards: Redefining already defined constructor for class wokScriptManager in /home/araki/blog.ceed.jp/wp-content/plugins/syntax-highlighter/includes/common-controller.php on line 315

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method adsensem::init() should not be called statically in /home/araki/blog.ceed.jp/wp-includes/plugin.php on line 470

Strict Standards: 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

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method adsensem::init_widgets() should not be called statically in /home/araki/blog.ceed.jp/wp-includes/plugin.php on line 470

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

Strict Standards: 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: _adsensem in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 162

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

Strict Standards: 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: _adsensem in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 162

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

Strict Standards: 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: _adsensem in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 162

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

Strict Standards: 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: _adsensem in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 162

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

Strict Standards: 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: _adsensem in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 162

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

Strict Standards: 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: _adsensem in /home/araki/blog.ceed.jp/wp-content/plugins/adsense-manager/adsense-manager.php on line 162
ContentProviderを自動で実装する | CEED
Notice: Use of undefined constant user_level - assumed 'user_level' in /home/araki/blog.ceed.jp/wp-content/plugins/ultimate_ga_1.6.0/ultimate_ga_1.6.0.php on line 524

ContentProviderを自動で実装する


Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, non-static method adsensem::filter_ads() should not be called statically in /home/araki/blog.ceed.jp/wp-includes/plugin.php on line 192

Strict Standards: 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

Strict Standards: 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

Notice: Use of undefined constant user_level - assumed 'user_level' 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>


Notice: Use of undefined constant user_level - assumed 'user_level' in /home/araki/blog.ceed.jp/wp-content/plugins/ultimate_ga_1.6.0/ultimate_ga_1.6.0.php on line 524

Strict Standards: call_user_func_array() expects parameter 1 to be a valid callback, 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

Notice: Use of undefined constant user_level - assumed 'user_level' in /home/araki/blog.ceed.jp/wp-content/plugins/ultimate_ga_1.6.0/ultimate_ga_1.6.0.php on line 524