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

Activity起動のListView のコードをパターン化

ListView を表示して、タップしたら行毎のActivityを開始するというケースは、 サンプルや、デバッグ用コードを書いていると、結構、何回も同じようなことを書いている。 時間がもったいないので、以下のような List Adapter を用意すると時間が節約できる。…

Android4.0 WebView で Flash再生できない時

Android 4.0 WebView で、Flash 再生しようとすると、以下エラーが発生 call to OpenGL ES API with no current context (logged once per thread) couldn't load the vertex shader! couldn't load the vertex shader! couldn't load the vertex shader! co…

Android 4.0 エミュレータでTextView ellipsize失敗

Android TextView で、長いテキストを 溢れる分 "..." と表示させて幅に合わせて 表示させるのに、scrollHorizontally="true" と ellipsize 属性、singleLine="true" を指定する。 (例)

TimerTask + BlockingQueue を AsyncTask で!

Android の UI スレッドで TimerTask を裸で使うと失敗する。 そこで、TimerTask と java1.5 からの BlockingQueue を、AsyncTask で実装してやると、かなり汎用的になる。 AsyncTask を以下のように実装する。 import java.util.Timer; import java.util.Ti…

WebView 長押しコピー

WebView 長押しコピーの実現方法が、今のところ、長押しした行の端までを 選択ハイライトにする方法を思いつくのがやっと。 長押しした周りの単語やフレーズだけを選択ハイライトしたいのだが。。。。 グローバル変数で長押し位置取得変数を宣言する。 float…

WebViewでテキストコピーのために選択ハイライト

Android標準ブラウザや、Opera ブラウザのように、テキストのコピーハイライトを実行しようと方法を調べてた。 WebView#emulateShiftHeld() は、Android 2.2 から公開 API になっているのに、 公式API ドキュメントでは、将来廃止される想定の Deprecate に…

GALAXY SC-04D では、IME DELキー押したのが拾える

GALAXY NEXUS SC-04D で、キー入力 IME 上、DELキーを押すと、 android.view.KeyEvent.KEYCODE_DEL (67) を拾うことができる。Android 2.3.x では、拾えなかったのに。。。 @Override public boolean dispatchKeyEvent(int keyCode,KeyEvent event){ if (…

WebChromeClient javascriptダイアログ backに注意

WebChromeClient で、javascript の prompt に対応するものを書いたものの、 BACKハードキーを押すと、ページのズーム以外、何もできなくなってしまう。 ダイアログ生成時の Builder で、setCancelable(false) を実行しておくと解決する。 例) public class…

ボタン付きの ListView

Android 右端にボタンを配置した ListView を作るパターンはある程度、汎用的に書けるのではと 思い立ち、以下のように書いてみた。 まずは、レイアウトの XML、ほとんどのケースで以下のようになるであろう。

BACKキー長押し

Android アプリを作っていて、BACKキーを押した時の処理を書くことがある。 onKeyDown をオーバライドして、よく、KeyEvent.KEYCODE_BACK かつ、KeyEvent.ACTION_DOWN をチェックするが、 BACKキー長押しをハンドルしないと書いている処理によっては思わぬ動…

丸みをかけた EditText

EditText を丸みをかけた表示にするには、 res/drawable に、shape を指定した editframe.xml を用意する。 <shape xmlns:android="http://schemas.android.com/apk/res/android" > <stroke android:width="5dp" android:color="#000000"/> </stroke></shape>

動的リスト形式の選択ダイアログ

リストを表示して選択させる形式のダイアログを表示するケースで、数種類の画面で動的に変化 したり、同じようなリストだが並びが違うなどのケースで、 ダイアログ生成を数か所で同じようなコードを書くのがとてもセンスないと思ったので、 抽象化やインター…

WebView 表示中のHTMLソース

WebViewで表示中のページのHTML を参照するのに android.os.AsyncTask で javascript の outerHTML を実行してソース表示のActivityを起動するのがスマートである。 javascript インターフェースを定義 BrowseRelay jsRelay; webview.getSettings().setJavaS…