ラベル Java の投稿を表示しています。 すべての投稿を表示
ラベル Java の投稿を表示しています。 すべての投稿を表示

2013/06/04

Java の Calendar は Singleton ではなくて Factory Method。

カレンダーを取得する際はCalendar.getInstance() でとる。このgetInstalnce()だけで、勝手にシングルトンだと思っていた。実際は Factory Method パターン でした。

ソースコードを見ると
Calendar#getInstance() -> Calendar#createCalendar(TimeZone zone, Locale aLocale) で言語、国なんかを判別して
  • new sun.util.BuddhistCalendar(zone, aLocale);
  • new JapaneseImperialCalendar(zone, aLocale);
  • new GregorianCalendar(zone, aLocale);
を new してインスタンス生成して返してる。

シングルトンだと思っていたから、 Calendar#add() とかして、アプリで使う Calendar インスタンスの時間ずれたらどうしようとか今更心配した・・・。大丈夫だった・・・。

2013/05/03

Mac で JAVA_HOME 環境変数を設定する。

zsh にを使っていて JAVA_HOME 環境変数を設定する必要がある。

~/.zshrc

 export JAVA_HOME=$(/usr/libexec/java_home)

× export JAVA_HOME=/usr/libexec/java_home

$() で囲まないと以下のように怒られる。
Error: JAVA_HOME is not defined correctly.
We cannot execute /usr/libexec/java_home/bin/java
実行結果を展開してるのかな?

シンボリックリンクになっているようだ
ls -al /usr/libexec/java_home
lrwxr-xr-x 1 root wheel 79 4 27 21:16 /usr/libexec/java_home -> /System/Library/Frameworks/JavaVM.framework/Versions/Current/Commands/java_home

2013/01/21

Eclipse にて @Override アノテーションで must override a superclass method と怒られた。

わかっていたはずなのに、無駄にハマった。
忘れないために、自分で記録しておく。


こんなかんじで must override a superclass method と怒る Eclipse さん。
これはコンパイラのレベル が 1.5 になっているから。Android  開発の場合は 1.6 に変更します。

[command + ,] で [Preferences] を開いて、
[Java] -> [Compiler] を開く。
[Compiler compliance level] を 1.6 に変更。

これで直る。
エラーが消えなかったら、プロジェクトのクリーンをしてみる。[Project] -> [clean]
ん?これって昔書いたっけ?


2012/08/20

Android でカメラかギャラリーから画像を読み込んでトリミングして表示するサンプル

  • Android OS 2.3.6
  • Galaxy S
での動作。
動かない端末あるんだろうなぁとか思いつつもとりあえず動いたので公開。
トリミングの方法なんだけど、デフォルトのトリミングアプリがあるらしく、それを使ってみた。

ギャラリーから Picasa の画像選んだらなんか落ちそうだけど検証してない。
不具合あったら教えて下さい。

2012/08/09

FizzBuzz を Java(Android) で書いてみた

無駄に ListView とか使って。
またもやコレジャナイ感。

1時間くらいかかった_| ̄|○

2012/06/24

Android で電話帳から選択した人の電話番号一覧を取得するサンプル。

デスマって凄いですね。
どうもこんにちは。

Android のいいところ Intent 連携。
そんな便利機能で電話帳と連携して、選択した人の電話番号を取得したい。

ただし選択した人の電話番号が一つとは限らない。
Google 先生に聞いてみたら一つだけ取得するサンプルは結構あるんだけど、
そこから全件取得するってのはなかった(と思う)。

なのでこしらえた。
対象は Android 2.x 以上。 ICS も行けるかと思う(実機では試してない)。

2011/09/15

Android で暗黙的インテントをデバッグする方法

web ブラウザから <a> タグ使って、作ったアプリケーションを起動したいってのがよくある話。
<a href="hogeschema://run.example.com">起動!!</a> みたいなリンクをタップすると起動しますよと。
そんな感じで起動するアプリの作成方法はいろいろ参考があるんだけど、
デバッグ方法をあまり見かけない。

2011/09/01

Android で HTTP 通信するクライアント作りました。 EasyHttpClient

簡単に通信したくて、ググッてもなんかいろいろ方法があって
ウキャーってなったので作ってみた。

2011/08/16

Android で ListView に非同期で取ってきた画像を表示したら位置がおかしい件

あ…ありのまま 今 起こった事を話すぜ!
『一番目のアイコンを設定したとおもったら、5番目のアイコンも設定していた』
な… 何を言ってるのか(ry

でもね、ほんとにそう思いました。

Twitterとかによくみられる「左にアイコンがあってその右に文字」のレイアウト。
それを表現するために、Android だと ListView がまあよく使われると思います。
盛大にハマったので一応な解決策です。