2012-03-01から1ヶ月間の記事一覧
ListView を表示して、タップしたら行毎のActivityを開始するというケースは、 サンプルや、デバッグ用コードを書いていると、結構、何回も同じようなことを書いている。 時間がもったいないので、以下のような List Adapter を用意すると時間が節約できる。…
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 TextView で、長いテキストを 溢れる分 "..." と表示させて幅に合わせて 表示させるのに、scrollHorizontally="true" と ellipsize 属性、singleLine="true" を指定する。 (例)
Android の UI スレッドで TimerTask を裸で使うと失敗する。 そこで、TimerTask と java1.5 からの BlockingQueue を、AsyncTask で実装してやると、かなり汎用的になる。 AsyncTask を以下のように実装する。 import java.util.Timer; import java.util.Ti…
WebView 長押しコピーの実現方法が、今のところ、長押しした行の端までを 選択ハイライトにする方法を思いつくのがやっと。 長押しした周りの単語やフレーズだけを選択ハイライトしたいのだが。。。。 グローバル変数で長押し位置取得変数を宣言する。 float…
Android標準ブラウザや、Opera ブラウザのように、テキストのコピーハイライトを実行しようと方法を調べてた。 WebView#emulateShiftHeld() は、Android 2.2 から公開 API になっているのに、 公式API ドキュメントでは、将来廃止される想定の Deprecate に…
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 の prompt に対応するものを書いたものの、 BACKハードキーを押すと、ページのズーム以外、何もできなくなってしまう。 ダイアログ生成時の Builder で、setCancelable(false) を実行しておくと解決する。 例) public class…
Android 右端にボタンを配置した ListView を作るパターンはある程度、汎用的に書けるのではと 思い立ち、以下のように書いてみた。 まずは、レイアウトの XML、ほとんどのケースで以下のようになるであろう。
Android アプリを作っていて、BACKキーを押した時の処理を書くことがある。 onKeyDown をオーバライドして、よく、KeyEvent.KEYCODE_BACK かつ、KeyEvent.ACTION_DOWN をチェックするが、 BACKキー長押しをハンドルしないと書いている処理によっては思わぬ動…
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 を参照するのに android.os.AsyncTask で javascript の outerHTML を実行してソース表示のActivityを起動するのがスマートである。 javascript インターフェースを定義 BrowseRelay jsRelay; webview.getSettings().setJavaS…