前回、DialogFragmentとFragmentをコールバックで連携させるコードを書きました。また、ダイアログ表示中に画面回転させると例外が発生する場合があることを述べました。そこで今回は、同じような動作で且つ画面回転しても例外が発生しないコードを書いてみ…
DialogFragmentで設定した情報を、呼び出し元のFragmentに反映する方法のお話です。例えば、あるFragment上にボタンがあるとします。 そのボタンをタップするとダイアログ(DialogFragment)が表示され、そこで何らかの操作ができるとします。 その操作に応じ…
今回のエントリーは、AndroidでFeliCa内データへのアクセス中にExceptionが出てしまった時の対応についてです。Android本体にNFCの機能が搭載されている場合、「作法」に従ってコーディングすれば、Suicaなどの交通系FeliCa系カード内の残高や履歴データを参…
Eclipse + PHP + Xdebugという、参考書にもよく載っているモジュール構成でPHPのコードをデバッグしようとすると、起動後57%で処理が停止してしまう場面に出くわすことがあります。ネットで検索すると、この現象にぶつかる方も多いようです。私もしばらくこ…
VMware Playerが起動できない時があります。私の場合はWindows7にVMware Playerをインストールしているのですが、いつものようにVMware Playerのアイコンをクリックすると、エラーダイアログが出て起動できない時があります。初めて見たときは焦ります。この…
先月このブログでもお知らせしましたが、節電系ユーティリティアプリ「オート節電」をGoogle Playに公開しました。https://play.google.com/store/apps/details?id=com.kyakujin.android.autoeco&hl=jaAndroidアプリの入門書を読み終え、次により実践的なア…
本日、Androidアプリを一つ、Google Playに公開しました。端末本体の節電系ユーティリティアプリです。https://play.google.com/store/apps/details?id=com.kyakujin.android.autoeco&hl=jaスクリーンショットの一部です。 よく知られているように、スマート…
前回の続きです。今回は最後のステップ「3. プロジェクト毎の設定」の内容を記述します。 1. 実行環境の設定 Jenkinsを実行させるためのマシン環境の設定です。2. Jenkins共通設定 Jenkinsの実行全般に関わる設定です。3. プロジェクト毎の設定 (←今回) Jenk…
前回の続きです。今回は以下のステップのうち「2. Jenkins共通設定」の内容を記述します。 1. 実行環境の設定 Jenkinsを実行させるためのマシン環境の設定です。2. Jenkins共通設定 (←今回) Jenkinsの実行全般に関わる設定です。3. プロジェクト毎の設定 Jen…
今更ながらですが、個人的に作成しているAndroidアプリの作成プロセスにJenkinsを導入してみました。個人で行う小規模のアプリ作成であれば、とりあえずビルドしてエミュレータや実機でテストして、そして、ある程度の品質が確認できれば公開することは簡単…
JavaでもC++でも、コードの中に成り立つべき条件があり、それを検証する場合はアサーションを活用することができます。例えばJavaならこのように書けます。 public testCompare(){ // 中略 int a = 0; int b = 1; assert isEqualNum(a, b); } private boolea…
時間設定の便利なコンポーネントとしてTimePickerDialogがありますが、このダイアログはSDKバージョン4.1.x以降から想定外の動作をするケースがあります。今回はそれに対する回避策の例をメモ書きします。まず、TimePickerDialogというのはどういうものかと…
場合によってはrestartLoader()のみを使っても良さそう、というお話です。Androidアプリにおいて、例えばデータベースからデータを非同期で読み込み、ListViewなどへ読み込んだデータを反映するときなどは、ローダーという機構を使用することができます。そ…
このところ、仮想マシンにWebサーバを入れて色々と実験しておりまして、やはりというか数々の設定に苦慮することが多々あります。そこで、解決したことを覚書として記録に残しておきたいと思います。今回は、VMware Player上のゲストOSに固定IPを割り当て、…
RSSを読み込んでListViewに表示する処理を書いていたときのことです。Android 2.3.xでは問題なくXMLをパース出来ていたのに、Android 4.2.xではうまく動作しませんでした。その問題に対してどのようにコードを修正したのか、その具体的な方法をここに記録と…
Androidアプリ内でSQL文を発行する場合、LIKE演算子の使い方によっては例外が発生してしまいます。例えばメモ帳アプリの場合。「notes」というテーブルに、メモのタイトルを表す「title」列と、本文を表す「body」列が定義されているとします。ここで、中間…
前回(Androidアプリ開発に役立った書籍(1))に引き続き、書籍の紹介です。前回紹介したのはAndroidアプリ開発を始めるにあたって必須となる知識が詰め込まれた書籍でしたが、今回紹介するのは可能な限り知っておいたほうが良いと思われる内容のものです。まず…
スマホアプリでもWebアプリでも、最近ではエンジニアの方々がブログ上で技術的な情報を公開していたり、あるいはGitHubなどで直接ソースコードを見る(もしくは利用する)機会が増えたため、昔に比べれば開発することに対する参入障壁が低くなりました。基本、…
追記: 2013/08/20 以下の記述はエミュレータで検証した結果です。実機の場合は挿入しようとしたROWIDがそのまま返却されるケースがあるようです。SQLiteでUNIQUE制約が設定されたカラムに重複データをinsertすれば一意制約違反になるわけですが、 insertWith…
最近、Robotiumを使ったアプリケーションの評価を試しているのですが、やはりというか一部不安定な機能があります。たとえば、isCheckBoxChecked()というメソッド。これは、任意のチェックボックスがONになっているかをテストするためのものですが、どのよう…
Robotiumを使ってCursorのデータを取得する方法のメモです。Androidアプリケーションのテストを実施する場合、通常ではJUnitを使用すると思いますが、ActionBarSherlockのライブラリを導入しているとJUnit実行時に例外が発生します。ActivityInstrumentation…
最近はもっぱらAndroidアプリのプログラミングをやっているのですが、実は興味本位でNode.jsのスタディも並行して始めています。Node.jsはJavaScriptを使用するので、テキストエディタが一つあればコードを書けるのですが、生産性やデバッグのしやすさなどを…
コンテンツプロパイダから取得したデータ等を単純にListViewにリスト表示するだけであれば、SimpleCursorAdapterを使えば容易にできます。では、その取得したデータだけではなく、別途用意したアイコンもリストの左端等にちょこっと表示させたい場合はどうす…
ソフトウェアエンジニアにとって、機能設計やコード設計などのテクニカルスキルが必須であるのは当然ですが、それに加えて文書や口頭によるコミュニケーション能力、また最新情報は英語圏のものがほとんどなので英文を読みこなす力も必須スキルのうちに入り…
APIレベル4(Android 1.6)でアプリを開発していたのですが、訳あってAPIレベル8(Android 2.2)に変更することにしました。プロジェクトのプロパティにてターゲットをAndroid 2.2に変更。そして、AndroidManifest.xmlの中のandroid:minSdkVersionを"8"に修正。A…
ListViewにsetChoiceModeメソッドを使ってListView.CHOICE_MODE_MULTIPLEを設定すると、複数選択ができるチェックボックスを付けることができます。そして、SimpliCursorAdapterなどによってデータをListViewにバインドさせると、確かにチェックボックス付き…
Android 1.6にSupport Libraryを導入してListFragmentのサブクラスを作成しました。そして、SQLiteのテーブルから取得したデータをリスト表示し、そのリスト項目の一つを選択したときの処理を実装したのですが、なかなか想定通りに動いてくれません。Android…
プログラマーやシステムエンジニアであれば、技術書やそれにまつわる関連の書籍を読む機会が多いでしょう。例えば、C言語使いであればカーニハン&リッチーの『プログラミング言語C』を、Javaであればジョシュア・ブロックの『Effective Java』といった有名…
「Android Developers」からサンプルコードをダウンロードしてEclipseにインポートしましたが、onCreateメソッドの引数にて以下のエラーが表示されました。「Rを解決できません」どうやらプロジェクト作成時に本来生成されるはずのR.javaが、生成されなかっ…
駆け出しのエンジニアにとって、何時から何時までナニナニの作業を行った、といった作業記録を具体的にテキストファイルなどに残しておくことは、後々の開発のために非常に有意義だと思っています。それは、自身の時間管理にもなるし、なにより作業記録を一…