2013-07-01から1ヶ月間の記事一覧

PCで作成したSQLite DBをAndroidアプリで使う

辞書アプリなどのSQLiteに保存されたデータを使うアプリでは、アプリの初回起動時に何らかの方法でデータをDBにインサートする必要があると思います。 件数が少なければ外部ファイルからインサートしてもいいのですが、件数が多くなってくるとこのインサート…

Spinnerでプログラムから選択肢を変更した時にonItemSelectedを呼ばないようにする

少しはまったのでメモ。 以下のようにsetOnItemSelectedListenerでnullを設定すればいけるかと思いきや、これではnullに設定してもonItemSelectedイベントが呼ばれてしまいます。 spinner.setOnItemSelectedListener(null) spinner.setSelection(0) 以下のよ…

RobotiumでUIに関するアクションを実行

RobotiumでSoloではサポートされていない操作を行う必要がある時、textView.setText(“hoge”)のようなUIに対する変更のコードをRobotiumのテストで実行すると、以下のエラーとなります。 android.view.ViewRootImpl$CalledFromWrongThreadException: Only the…

CursorLoaderのロード後にListViewの選択行を変更

ListViewでadapterにSimpleCursorAdapterとCursorLoaderを使用している状況では、onLoadFinishedメソッドの中でadapter.swapCursor(cursor)を呼び出してListViewの中身を更新すると思います。 この時swapCursorの後にListViewの選択行を変更するには、以下の…

Spinnerの中でアイテムのpositionを取得する

Spinnerの選択肢を手動で変更する場合、以下のようにsetSelectionで引数にSpinner中のアイテムのpositionを指定します。 // spinnerの先頭を選択spinner.setSelection(0) 問題はこのpositionをどうやって調べるかです。Spinnerから特定の文字列に合致するア…

Cursorに行をマニュアルで追加

MatrixCursor、MergeCursorを以下のように使うと、Cursorにマニュアルで行を追加することができます。 def onLoadFinished(loader: Loader[Cursor], cursor: Cursor) { val matrixCursor = new MatrixCursor(Array("_id", "category_id", "name")) matrixCur…

ListViewの選択されたアイテムの背景色を変更2

[Android] ListViewの選択されたアイテムの背景色を変更では、ListViewの行のレイアウトのbackgroundに以下のselectorを設定して選択された行の背景色を変更しました。 res/drawable/list_item_selector.xml android:drawable="@color/selected_list_item_co…

ListViewをタップした時に色を変えないようにする

ListViewはデフォルトではタップすると色が反転するようになっています。 ListViewのlistSelectorに透明色(#00xxxxxx)を設定すると、タップした時に色が変わらないようになります。 android:id="@+id/unit_list" android:layout_width="match_parent" androi…

テスト用DBを使ってActivityInstrumentationTestCase2のテストを行う

RenamingDelegatingContextをSQLiteOpenHelperのコンストラクタに渡すと、テスト用のDBを使用することができます。 RenamingDelegatingContextはこちらの記事が詳しいです。 u1aryzの備忘録とか: RenamingDelegatingContextを使ってみた 前回の記事[Android]…

CursorLoaderのテスト

現在開発中のアプリではCursorLoaderとSimpleCursorAdapterを使ってDBのデータをListViewに表示しています。 CursorLoader、SimpleCursorAdapterの使い方は以下の記事が詳しいです。 コジオニルク - Android - パワフルなCursorLoader このCursorLoaderをテ…

IntelliJ+sbt+Androidな環境のデバッグ方法

sbt-androidプラグインを使ってScalaでAndroid開発を行う場合のIntelliJのデバッガの設定方法を紹介します。 実機側の設定 実機側の設定はJavaで開発する時と同じです。 以下はAndroid 4.2.2の設定方法です。 設定 > セキュリティ > 提供元不明のアプリ にチ…

sbtでJUnit実行後にレポートを出力

sbtでJUnitのテストを実行するにはbuild.sbtのlibraryDependenciesに以下を追加するだけです。 "com.novocode" % "junit-interface" % "0.8" % "test->default" しかし、これだけだとコンソールに結果が表示されるだけで、xmlに結果は出力されません。 xml形…

sbt-androidでRobolectricのテストを実行

RobolectricはActivityなどのAndroidのライブラリに依存するテストを実機やエミュレータを用いずに、通常のJVM上で実行可能にするフレームワークです。 エミュレータを使わないので高速に動作し、JenkinsなどのCIサーバ上でも通常のテストと同様そのまま実行…

sbt-androidでRobotiumのテストを実行

SBT-Android 0.7でRobotiumなどのActivityやViewなどのAndroidのライブラリに依存したテストの実行方法が少し変わっているようなので、sbt-androidからRobotiumのテストの実行方法について説明します。 giter8でテンプレートからプロジェクトを作成している…

CloudBees Dev@cloudのJenkinsで別バージョンのsbtを使う

この記事を書いている時点ではDev@cloudのJenkinsにインストールされているsbtのバージョンは0.11.3と少し古いです。 ここではDev@cloudのWebDav Repositoryに任意のsbt-launch.jarを置いて、Jenkinsから使う方法を紹介します。 プライベートリポジトリに使…