2012年3月28日水曜日

Activityの呼び出し(1)

これまでのサンプルは1つのアクティビティ(画面)を使ったものばかりでした。今回はアクティビティを切り替えてみます。

まずは単純にアクティビティを切り替えるだけ。データの受け渡し等は考慮しないパターンです。Intentクラスでどのアクティビティを呼ぶか設定して、startActivity()メソッドでそのアクティビティを呼び出します。

ActivityTest1aActivity.java
package jp.co.triware.samples.ActivityTest1a;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;

public class ActivityTest1aActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button btnOpen = (Button)findViewById(R.id.open_btn);
        btnOpen.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Intent intent = new Intent();
                intent.setClass(getApplicationContext(), SubActivity.class);
                startActivity(intent);
            }
        });
    }
}

2012年3月19日月曜日

TableLayout

前回のシステム情報はログ出力で確認しましたので、デバッガがないと確認できませんでした。これを画面に表示させてみましょう。
これまで表示系のサンプルはLinearLayoutを使ってきましたが、表のようなものは「TableLayout」を使うと便利です。

実行結果
Radioの行の列同士がくっついてしまいましたが、これはマージンやパディングを指定していないので、表示領域いっぱいに書いてしまうとこうなります。この辺りの対策方法はまた別途。

黄色の行はクラス名を表示するということで、2つの列を結合して、目立つように色も変更しました。それ以外は各行は2列、右の列は折りたたんで全体を表示するようにしています。

では、まずレイアウトファイルをどう記述するか見てみましょう。

2012年3月8日木曜日

システム情報

前々回、APIレベルやOSのバージョンの話をしましたので、今回はOSのシステム情報(システムのビルド情報)を取得する方法について書いてみます。

システム情報はBuildクラスを参照します。Build.VERSIONクラスでは、OSバージョンやAPIレベルを取得できます。バージョンによってフィールド(プロパティ)が追加されていたり、フィールドの代わりにメソッドを使うことが推奨されています。手元の端末のバージョンに応じて、使えるフィールドだけ参照すればいいのですがそれでは汎用的ではありません。いつもはプロジェクトの設定はAndroid 2.1以降で使えるようにしていますが、それではAndroid 2.2や4.0で追加されたものが使えませんので、今回はどのバージョンでも動くようにビルドします。

Androidプロジェクトの設定
プロジェクト名:BuildInfoTest1
ビルドターゲット:Android 4.0
アプリケーション名:BuildInfoTest1
パッケージ名:jp.co.triware.samples.BuildInfoTest1
アクティビティーの作成:BuildInfoTest1Activity
最小SDKバージョン:1
ビルドターゲットにAndroid 4.0を、最小SDKバージョンには1を指定しています。最小SDKバージョンを指定しないとビルドターゲットで指定したバージョン以降(今回であれば、API Level 14、Android 4.0以降)でしか動かなくなりますのでご注意を。

2012年2月29日水曜日

Android SDKのアップデート

今後の記事では、Android 4.0を対象に含めることにしますので、開発環境をアップデートしておきます。以下手順を説明します。

SDKのアップデート
  1. [ヘルプ]メニューから[新規ソフトウェアのインストール]を選択します。

2012年2月21日火曜日

APIレベル

Android 2.3の端末が大部分を占め、Android 4.0の端末がまだ数えるほどしかないという状況ですが、早くもAndroid 5.0が6月に発表されるらしいというニュースが流れていました。

バージョンがあがってきて、APIレベルの数も増えてきましたので、OS (Android)のバージョンとAPIのバージョン(APIレベル)を表にまとめてみました。

リリースOSバージョンAPI
レベル
開発コードバージョンコード
2008/10Android 1.01非公開BASE
2009/02Android 1.12非公開BASE_1_1
2009/05Android 1.53CupcakeCUPCAKE
2009/09Android 1.64DonutDONUT
2009/11Android 2.05EclairECLAIR
2009/12Android 2.0.16ECLAIR_0_1
2010/01Android 2.1.x7ECLAIR_MR1
2010/06Android 2.2.x8FroyoFROYO
2010/11Android 2.39GingerbreadGINGERBREAD
Android 2.3.1
Android 2.3.2
2011/02Android 2.3.310GINGERBREAD_MR1
Android 2.3.4
2011/02Android 3.0.x11HoneycombHONEYCOMB
2011/05Android 3.1.x12HONEYCOMB_MR1
2011/06Android 3.213HONEYCOMB_MR2
2011/10Android 4.014Ice Cream
Sandwich
ICE_CREAM_SANDWICH
Android 4.0.1
Android 4.0.2
2011/12?Android 4.0.315ICE_CREAM_SANDWICH_MR1





2012/??Android 5.0??(Jelly Bean)???

ECLAIR、GINGERBREAD、HONEYCOMB、それにICE_CREAM_SANDWICHの後ろの「MR」は「Maintenance Release」の略で、不具合が修正されたバージョンです。

こうやってリリース時期もまとめてみると、2.xはスマートフォン向け、3.xはタブレットに特化、4.xでスマートフォンとタブレットを融合、という時期だったので、2011年は慌しい年でしたね。

参考:
http://developer.android.com/guide/appendix/api-levels.html
http://developer.android.com/reference/android/os/Build.VERSION_CODES.html

2012年2月6日月曜日

劇団四季「マンマ・ミーア!」


週末に以前から誘われていた劇団四季のミュージカル「マンマ・ミーア!」を観に行ってきました。劇団四季の京都劇場は駅ビルの関連施設の中にあり、大阪の劇場と共に、アクセス便利なところにあります。

2012年2月2日木曜日

Toast (表示位置変更)

Toastは、普通は画面の下のほうにメッセージを表示します。


今回はこの表示位置を変えてみましょう。


Toast表示位置変更

Toastの表示位置を変更するにはsetGravity()メソッドを使います。
void android.widget.Toast.setGravity(int gravity, int xOffset, int yOffset);
gravityにはGravityクラスの定数、TOP/BOTTOM/LEFT/RIGHT等を指定します。例えば「左上」に表示したい場合はTOPとLEFTのOR値を指定します。xOffsetとyOffsetは、X座標とY座標のオフセットです。

以下のサンプルではクリックしたボタンによって表示位置を変えています。四隅に表示する際のY座標だけオフセットを指定してみました。