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

WebView#clearMatches の怪しさ

Android WebView の clearMatches() は、JavaDocの説明がない。 これを Android 2.1 で実行するといきなり WebView がダウンする。 Exceptionも出してくれない。 いったいどういうことなのか?

Android エミュレータの画面サイズ調整

Eclipse で、Android エミュレータを実行する時のウィンドウサイズを調整する方法、 プロジェクトの「実行構成」を編集する。 「実行構成」の画面で「ターゲット」タブを選択して 一番下までスクロールして、「エミュレータ・コマンド行の追加オプション」 …

EditTextPreference でも android:inputType

EditTextPreference で改行が入らないようにするには、 android:inputType を設定すればよい。 例) <EditTextPreference android:dialogMessage="ユーザID" android:key="user" android:dialogTitle=ユーザID編集" android:negativeButtonText="cancel" android:positiveButtonText="OK" android:title="ユーザID" android:inputType="text" /> 更に入力文字数を制限したければ、 …</edittextpreference>

Preference をリセット

Preference をリセットする場合、"/data/data/" の下に作成される /data/data/{パッケージ名}/shared_pre/{パッケージ名}_preferences.xml を削除するのではなく、 以下のようなメソッドを用意して任意のタイミングで実行するのが良いだろう。 // Prefer…

ListView 行後に異なるレイアウトを

Android ListView で、行毎に異なるレイアウトで表示させたい場合、 android.widget.BaseAdapter を使うのが良いみたい。 android.view.LayoutInflater を具象化する BaseAdpter に渡して getView メソッドで返す android.view.View を、行毎に LayoutInflat…

# ページ内リンクはやめて欲しいもの。

WebView で、onPageFinished が複数回実行されるケースの1つ。 <form action="#" method="post" > なんて書かれ、javascript で、HTTP-POST が走るような サイトの場合、 "#" の onPageFinished → POST先の onPageStarted → onPageFinished となり、webview の goBack()では POST前のページ</form>…

BouncyCastle を使って暗号化

BouncyCastle を使って Andorid用に暗号化用クラスを書いてみた。 Android 用というのは、暗号化した後の byte を android.util.Base64 で URL_SAFE エンコードしたからだ。 android.util.Base64 の URL_SAFE エンコードは、4 byte区切りで余った末尾に "=" …

暗号化プロバイダを探す

AES暗号化プロバイダを探してましたが、昔使った記憶があるもの http://www.bouncycastle.org/ にたどりつきました。 stackoverflow で紹介されていた 暗号化プロバイダに、bouncycastle を使ったAES暗号化のサンプル http://stackoverflow.com/questi…

Android 自アプリのデータを参照

Android 実機の /data の中は、エミュレータで見ることはできない。 デバッグのために、エクスプローラのように /data/data/パッケージ名/ の下が確認できたら良いのにと考えた。 そこで、File # listFiles() の結果で見に行くActivity を書いてみた。 impor…

Velocity を使わない。。。

昔、Velocity をよく使ったことがある。最近は使うことがなくなってきたものの、 やはりメッセージなどを単純なテンプレートから作成するケースはまだ発生する。 例えば、{0},{1},{2}...という{ }で囲んだ数字部分を、任意の要素配列で順に 置換…

Android javascript: で値を受け取るには、

Android WebView # loadUrl("javascript: で実行した結果を直接受け取ることができない。 そこで、間接的に受け取る方法が考えられる。対象の javascript の後で、もう一度結果を受け取るための、javascript Interface を実行させるのである。 以下、単純な<input> …

単独で発生する onPageFinished

Android WebViewClientを使用していてonPageStarted の実行 と onPageFinished が1対1でなく、onPageFinished が何度も実行される場合がある。 ページ内リンク、<a href="#1"> など、、による移動で発生する。 <form action="#" method="post" > なんて書かれてしまうと onPageFinished → onPageStarted </form></a>…

WebView のパスワード保存ダイアログ

Android WebView 使っていて、パスワード入力のあるページで入力送信した時、 「パスワードを保存する・しない・今は保存しない」の3個のボタンのダイアログが 表示される場合がある。 これを出さないようにする方法 android.webkit.WebSettings の setSave…

WebView の履歴、残念なことに

Android WebView の履歴を取得するのに、WebView のメソッド copyBackForwardList から android.webkit.WebBackForwardList を持ってきて参照してみる。 WebBackForwardList には、履歴の蓄積数を取得する getSize() と、 getItemAtIndex(int index) で 履歴…

WebChromeClient のカスタマイズ

Android WebView で javascript alert()などを許可させる場合、 WebChromeClient を使うが、ほとんど同様のコードで対処できるのでは? と思い、書いておく。。 import android.app.AlertDialog; import android.content.Context; import android.content.Di…

WebView キャッシュの場所

Android WebView のキャッシュの場所は、 Android 2.3 では、、 /data/data/{パッケージ名}/cache/webviewCache/ Android 3.0~では、、 /data/data/{パッケージ名}/cache/webviewCacheChromium/ /data/data/{パッケージ名}/cache/webviewCacheChromiu…