Android Project をEclipseで新規作成した後、実行時にClassNotFoundExceptionが発生して落ちてしまう事象が頻発したため、そのデバッグ方法をまとめました。
Androidアプリの設定画面を簡単に実装する方法
Androidアプリの設定画面を実装する一番オーソドックスな方法としてPreferenceAPIがあります。 ここではその実装方法についてまとめます。
スワイプによる更新(ListViewを引っ張って更新)
Androidアプリでスワイプによる更新を実装する方法についてまとめました。 公式のサポートライブラリ(v4のSwipeRefreshLayout)を利用すると簡単に実装できます。
戻るボタンの実装方法
Androidで戻るボタン(BackKey)を押した際の挙動でハマったので、その実装方法を記載します。 [前提] 画面の作りは、Fragmentを利用。 Fragmentの切り替えは普通にこんな感じで実装。 mFragmentManager.beginTransaction() .replace(R.id.container, myFragment).commit(); [ゴール] 戻るボタンを押した際に、一つ前のFragmentを再度表示したい。 [問題] 戻るボタンを押すとActivityがバックグラウンド実行状態に移行してしまう。(ホームボタンが押された時と同じ挙動をする。) [解決法] 1.BackStackへの追加 ネットで情報を調べて見ると、次のFragmentをcommitする前にBackStackへ現在のFragmentを追加する必要があるとのこと。 mFragmentManager.beginTransaction() .addToBackStack(null) // ここでBackStackに追加している。 .replace(R.id.container, myFragment).commit(); これで解決するかと思ったが、以前として同じ挙動のまま。
Javaで実践する契約プログラミング(Design By Contract/DbC)
一般的な契約プログラミングについてはWikipediaに記載がありますが、簡単に言うと、クライアント(メソッドのユーザ)とサプライヤー(メソッドの提供者)がそれぞれ守るべきことを定めるというものです。 あるメソッドを呼び出すときに、クライアント側は事前条件に定められたことを守り、サプライヤー側は事前条件が満たされているときに不変条件・事後条件が満たされていることを保証をします。 この方式を「具体的にJavaで実装するとこうなる」というものをまとめてみました。
Eclipse ADTでjUnit Test
新しいPCにAndroidの開発環境を構築した際に、jUnitが実行できなくてはまったので、解決法を備忘のために記載します。 1. 事象 メインのプロジェクトとそれに対応するテストプロジェクトを作成し、テストクラスを作りました。 早速実行してみたところ、”The specified jre installation is not found”というエラーが。 2. 解決法 EclipseADTは公式に記載の通り、JDK6が必要です。 Development tools JDK 6 (JRE alone is not sufficient) Apache Ant 1.8 or later Not compatible with Gnu Compiler for Java (gcj) Note: Some Linux distributions may include JDK 1.4 or
選択可能なダイアログ
1 2 3 4 5 6 7 8 9 10 11 12 |
<span class="typ" style="color: #660066;">Androidで、選択肢を表示するダイアログの実装方法です。 AlertDialogを利用すれば簡単に作成できます。 <!--more--> AlertDialog</span><span class="pun" style="color: #666600;">.</span><span class="typ" style="color: #660066;">Builder</span><span class="pln" style="color: #000000;"> builder </span><span class="pun" style="color: #666600;">=</span><span class="kwd" style="color: #000088;">new </span><span class="typ" style="color: #660066;">AlertDialog</span><span class="pun" style="color: #666600;">.</span><span class="typ" style="color: #660066;">Builder</span><span class="pun" style="color: #666600;">(</span><span class="pln" style="color: #000000;">getActivity</span><span class="pun" style="color: #666600;">());</span><span class="pln" style="color: #000000;"> builder</span><span class="pun" style="color: #666600;">.</span><span class="pln" style="color: #000000;">setTitle</span><span class="pun" style="color: #666600;">(</span><span class="pln" style="color: #000000;">R</span><span class="pun" style="color: #666600;">.</span><span class="kwd" style="color: #000088;">string</span><span class="pun" style="color: #666600;">.</span><span class="pun"><span style="color: #000000;">title</span></span><span class="pun" style="color: #666600;">) // ここにダイアログのタイトルを設定</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">.</span><span class="pln" style="color: #000000;">setItems</span><span class="pun" style="color: #666600;">(</span><span class="pln" style="color: #000000;">R</span><span class="pun" style="color: #666600;">.</span><span class="pln" style="color: #000000;">array</span><span class="pun" style="color: #666600;">.dialog_array</span><span class="pun" style="color: #666600;">, // ここに選択肢を設定。R.arrayだけでなく、CharSequenceの配列でも可 </span><span class="kwd" style="color: #000088;"> new</span><span class="typ" style="color: #660066;">DialogInterface</span><span class="pun" style="color: #666600;">.</span><span class="typ" style="color: #660066;">OnClickListener</span><span class="pun" style="color: #666600;">()</span><span class="pun" style="color: #666600;">{</span><span class="pln" style="color: #000000;"> </span><span class="kwd" style="color: #000088;">public</span><span class="kwd" style="color: #000088;">void</span><span class="pln" style="color: #000000;"> onClick</span><span class="pun" style="color: #666600;">(</span><span class="typ" style="color: #660066;">DialogInterface</span><span class="pln" style="color: #000000;"> dialog</span><span class="pun" style="color: #666600;">,</span><span class="kwd" style="color: #000088;">int</span><span class="pln" style="color: #000000;"> which</span><span class="pun" style="color: #666600;">)</span><span class="pun" style="color: #666600;">{</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">}</span><span class="pln" style="color: #000000;"> </span><span class="pun" style="color: #666600;">});</span><span class="pln" style="color: #000000;"> </span><span class="kwd" style="color: #000088;">return</span><span class="pln" style="color: #000000;"> builder</span><span class="pun" style="color: #666600;">.</span><span class="pln" style="color: #000000;">create</span><span class="pun" style="color: #666600;">();</span> |