2013年4月28日日曜日

[Android]onAnimationEndの呼ばれるとき

アニメーションの終了時に何か処理をしたい場合はAnimation.AnimationListenerのonAnimationEndを使うと思いますが、onAnimationEnd()はアニメーションの終了時以外でも以下のタイミングで呼ばれるみたいです。

Animation.cancel()が呼ばれたとき

Animation.cancel()が呼ばれるとAnimationListenerに通知が飛び、onAnimationEnd()が呼ばれます。

View.clearAnimation()が呼ばれたとき

リファレンスにはclearAnimationを呼ぶとAnimationがキャンセルされるという事だけ書いてありますが、おそらくそのキャンセルの中で上記のAnimation.cancelが呼ばれているのか、ここでもonAnimationEndが呼ばれるようです。

上記のタイミングでonAnimationEndが呼ばれたくないのであれば、事前にAnimationListenerを解除しておく必要がありそうです。


2013年4月26日金曜日

[Java]Arrays.asListを使ってListを作るとadd/clear/removeする時にUnsupportedOperationExceptionが発生するよ

ハマったのでメモ。

なぜかUnsupportedOperationExceptionが発生して困っていたのですが、原因はタイトルの通りでした。

Arrays.asList()使うと固定長のListが返ってくるそうな。
リファレンスに書いてありますね。

Arrays (Java Platform SE 6)

Returns a fixed-size list backed by the specified array
解決法はCollection インタフェースを実装したクラスを生成すれば良いと。

String[] str = new String[] {"aaa", "bbb", "ccc"};
List<string> list = new ArrayList<string>(Arrays.asList(str));

Java やってる人なら当たり前って感じなんでしょうか。

参考:
http://stackoverflow.com/questions/2965747/why-i-get-unsupportedoperationexception-when-trying-to-remove-from-the-list

2013年4月2日火曜日

[Android]SearchViewを使うために工夫したあれこれ

最近オレ得アプリを公開しました。

風来のシレン4 攻略支援ツール〜アイテム識別管理、値段識別〜

このアプリ内でSearchViewを使っているのですが、使うにあたって色々と設定をするのに苦労したので忘れないように記録を残しておこうと思います。

詳しくは以下。