春の伊予国漫遊記。松山・今治と愛媛の魅力を満喫してきました。 法事を兼ねて愛媛観光へ 2024年のGWは、毎年恒例の名古屋帰省ではなく自宅でゆっくり過ごしておりました。というのも、4月に法事のため愛媛・松山に親族大集合というイベントがありまして、そちらをGWの旅行代わりにしたという理由です。法事は日曜日の予定ということ…
春の伊予国漫遊記。松山・今治と愛媛の魅力を満喫してきました。 法事を兼ねて愛媛観光へ 2024年のGWは、毎年恒例の名古屋帰省ではなく自宅でゆっくり過ごしておりました。というのも、4月に法事のため愛媛・松山に親族大集合というイベントがありまして、そちらをGWの旅行代わりにしたという理由です。法事は日曜日の予定ということ…
java で Android アプリケーションを書くのが嫌になりました。矢張り java より scala でしょう。 一から作る場合は giter8 で適当にやれば、特に問題なくできるわけですが、既存のプロジェクトに scala コードを追加する場合、どうやればいいかよく分からなかったので少し調べました。成果物は github にあります。 まず普通に `android create project` でプロジェクトを作ります。 次に giter8 が作るプロジェクトテンプレートと Building Java Android projects を参考に適当に sbt でビルドできるようにします。必要ない設定とか、必要ない依存関係とかあるけど、気にしない、気にしない… いよいよ scala のコードを追加するわけですが、今のところ android-plugin で scala コードを書く
I want a simple TextView to behave the way simple_list_item_1 in a ListView does. Here's the XML: <TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_height="wrap_content" android:layout_width="fill_parent" android:gravity="center" android:focusable="true" android:minHeight="?android:attr/listPreferredItemHeight" android:textAppearance="?android:attr/textAppearanceL
昨日のエントリーに引き続き,バッドノウハウ的なものを箇条書きでまとめておく。思い付いた順に追加していく予定。 Activity関連 永続化はonPauseで行う*1。詳しくはActivityのライフサイクル図を参照のこと。 onPauseと対になっている処理は,onResumeで行うこと。onStart/onStopはあんまり使わない,気がする。 DialogはAlertDialog.Builderを使って実装するのが楽。ただし,裏で何らかの処理を行なっている間,ユーザーに操作をさせないために表示するダイアログ(いわゆるProgressDialog)は使わないようにする。DialogではなくActivityを新しく作って表示させることで,いくつかのトラブルを回避できる*2 *3。 重いタスクはUIスレッドで処理しない。AsyncTaskなどを使ってワーカースレッドで実行する。ただし,ワーカ
Andoroidアプリを開発するというと、初心者に対してもJAVAを勧める人は多いです。 デスクトップPCでは広く使われている「Flash」に人気がないのは、現状のAndroidのブラウザ上で十分な性能を発揮できないからだと思われます。 しかし「Flash(ActionScript 3.0)」と「AIR」の組み合わせなら、ゲームにも使えるパフォーマンスが得られます。この記事では、そのテクニックやノウハウをまとめてみました。 Flashでアプリ開発に至った背景 当サイトを運営している会社には、出版のほか、ケータイやモバイル向けのコンテンツ開発を行なっている部署がある。 社内の会合で「開発者以外のスタッフにもプログラムの知識を持ってもらおう」という動きがあったことから、開発部が研修用のゲームアプリ開発環境を検討することになった。 プラットフォームとしてAndroidが決まったため、ま
WebAPIをバンバン使うアプリを作っていたわりに、微妙にJavaでのHTTP通信の方法をよくわかってなかったのですが、ようやくちょっとわかったのでメモっときます。今まではライブラリでやっていました。 API Level 8からAndroidHttpClientというのがあるらしいんですが、今回はあえてDefaultHttpClientで。 以下、GET // 例外処理は省いています // パラメータを生成 ArrayList<NameValuePair> params = new ArrayList<NameValuePair>(); params.add(new BasicNameValuePair("subject", "件名")); params.add(new BasicNameValuePair("body", "本文です。こんにちは!")); // パラメータをクエリに変換
ブログ等に掲載されているHttpComponentのサンプルコードは、重要なところが端折られて紹介されている(というか間違っている事を知らずに書いている疑惑すらある)ことが多いので、正しいサンプルコードを書いておく。 まぁ、ここだけでなくApache HttpComponentsのドキュメントもちゃん読みましょう。あ、Androidのリファレンスにはロクに使い方が書いてないので、あんなゴミだけ読んでてもダメですよ。 要点 ポイントは2つ。 ResponseHandlerを使ってコードを書く HttpResponseの内部リソースを自動で解放してくれるので、ミスがなくなり、コードも簡潔になる。ブログ等ではHttpResponseを使わないコードもよく掲載されているが、リソースの解放処理が記述されていないことが多いのであまりよろしくない。 なお、ResponseHandlerを使わずに自分でリ
I'm getting this error from time to time and don't know what causing this: When trying to run/debug an Android app on a real device (Galaxy Samsung S in my case) I'm getting the following error in the Console: Failed to install *.apk on device *: timeout Launch canceled! This is all the Console is telling me. LogCat doesn't provide any information. Eclipse Problems view is not showing any issues.
米Googleは3月21日(現地時間)、Android SDK ToolsとEclipseプラグインのアップデート(Revision 17)をリリースした。これまで開発者を悩ませてきたエミュレータが大幅に改善されており、Windows PCまたはMacでネイティブに近い速度で動作する。 SDK ToolsのエミュレータはWindows PCまたはMacにおいて動作が非常に遅く、これまでエミュレータを使って手軽にAndroidの環境を試せなかった。IntelがAOSP (Android Open Source Project)に参加したことで、Revision 17ではWindowsおよびMac OS Xにおいてエミュレータが仮想モードでAndroidx86システムイメージをサポートし、Androidが高速に動作するようになった。ドライバはSDK Managerを通じて入手できる。 この他の
文字列が null か 0-length の場合と、それ以外の場合で処理を分けたい場合 null 判定と String.length の判定を使って @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Log.d("[checkLength] null", isNullOrZeroLength(null) + ""); Log.d("[checkLength] length 0", isNullOrZeroLength("") + ""); Log.d("[checkLength] length 5", isNullOrZeroLength("Hello") + ""); } public
Where should I call close() on the code? The LogCat returns this error: close() was never explicitly called on database android.database.sqlite.DatabaseObjectNotClosedException: Application did not close the cursor or database object that was opened here The error is this: > 12-16 17:24:50.886: ERROR/Database(10982): close() was never explicitly called on database '/data/data/com.psyhclo/databases
さて、長いこと放置していたはてなダイアリーの方ですが、まとめ書きした方がいいものは、やっぱりこちらに書くということで。 AndroidでSQLiteを使うケースは多々あると思いますが、明言されていない注意点があるので忘備録がてら。 SQLiteDatabase#closeは明示で呼ぶな、Cursor#closeは明示で呼べ これはSQLiteの作りの話ですが、SQLiteではマルチスレッドに対してコネクションオープンからクローズまでは保障する、という作りになっています。 要はコネクション単位でスレッドセーフですよ、ということ。 AndroidでSQLiteを使って検索系の処理をするのに、いわゆるWebアプリ的な作りで考えると、更新系処理ではCUD処理のあとにSQLiteDatabase#closeとしがちですが、android.database.sqlite.SQLiteException
jsoup: Java HTML Parser jsoup is a Java library that simplifies working with real-world HTML and XML. It offers an easy-to-use API for URL fetching, data parsing, extraction, and manipulation using DOM API methods, CSS, and xpath selectors. jsoup implements the WHATWG HTML5 specification, and parses HTML to the same DOM as modern browsers. Scrape and parse HTML from a URL, file, or string. Find an
Javaの話です。 Androidだと、普通xmlで画面を定義して、そのインスタンス生成するためにfindViewByIdというメソッドを使う。かなり多く使う。xmlで定義する時点で、型は(android.view.Viewのなんらかのサブクラスで)決まっているわけですが、それが必ず android.view.View 型で返ってくる。で、これ使いにくいし、ちょっと工夫すれば微妙に記述量減らせるんじゃないか?っていう話。 たとえば、大体のサンプルを見ても*1 Button myButton = (Button) findViewById(R.id.my_button); とか ListView view = (ListView)findViewById(R.id.my_view); となって なんで、型を2回も書かないといけないの?Scalaだったら、Typed Resources といっ
リリース、障害情報などのサービスのお知らせ
最新の人気エントリーの配信
処理を実行中です
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く