2011年3月2日水曜日

「Android 処理」:ボタンなどのクリックイベントを定義する

1.可能であれば、クリックリスナーのインタフェース(android.view.View.OnClickListener)を実装するのが一番ベストだと思います。
public class SampleClickEvent extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // ボタンのオンクリックリスナーを指定する
        findViewById(R.id.button).setOnClickListener(this);
    }

    /**
     * オンクリックリスナーの実装
     */
    @Override
    public void onClick(View v) {
        switch (v.getId()) {
        // ボタンIDごとに処理を実装する
        case R.id.button:
            // 処理
        }
    }
}

2.それでは、他の実装方法を見てみましょう。
①匿名クラスを使用する方法:
public class SampleClickEvent extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        // ボタンのオンクリックリスナーを指定する
        findViewById(R.id.button).setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                // 処理
            }
        });
    }
}
この方法のメリットはボタンごとにクリックリスナーを定義することで、onClick()メソッドにはボタンIDによって処理を分けるとこをしなくてもよい。
デメリットとしては、ボタンが多いとき、onClick()メソッドの宣言も多いし、処理はばらばらに離れるとメンテナンスは難しくなると考えられます。

②xmlレイアウトで宣言、Activityで実装する方法:
res/layout/main.xmlファイル:

    
この宣言 → android:onClick="onClickButton" を覚えてください

Activityファイル:
public class SampleClickEvent extends Activity{
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }

    public void onClickButton(View v) {
        switch (v.getId()) {
        // ボタンIDごとに処理を実装する
        case R.id.button:
            // 処理
        }
    }
}
この方法のメリットはソースをだいぶ削減できるし、良い方法でも考えられるが、最大のデメリットはxmlで宣言したオンクリックリスナー(この例では:onClickButton)の名前はActivityに定義されているメソッドと違っても、ビルドエラーが表示されてくれません。実行するときはもちろん落ちてしまいます。
ATD Plugin for Eclipseはこの問題を解決すれば、この方法も悪くないと思います。

2011年2月28日月曜日

[Android アプリ作成] 1.最初アプリを作成しましょう

今回はEclipse環境でHelloWorldアプリを作成してみました。
※Android開発のEclipse環境の構築は以前の投稿にあります。

①.プロジェクトの枠を作成します。
Fileメニューの「New」→「Project...」を選択
「Android Project」を選択し、次へ
プロジェクトの各パラメータを入力します

自動作成されたプロジェクトの構成
②.自動生成されたプロジェクトを起動してみます。
「First Project」プロジェクトを選択し、マウスの右クリックで 「Run as」を選択し、「Android Application」を選択します。
自動生成されたプログラムを実行した結果

2011年2月27日日曜日

[Android Emulator] GALAXY Tab (Samsung Electronics) エミュレータ

今回はGALAXY Tabのエミュレータ作成の手順について紹介します。
1.まず、Android SDK and AVD Managerを起動します。
※AVDの作成については、以前のこの投稿を参考してください。

2.Samsung Electronics add-onsをダウンロードします
左メニューの「Available packages」を選択し、左の「Third party Add-ons」→「Samsung Electronics add-ons」
ライセンスの確認し、同意をチェック、「インストール」を選択します。
ダウンロード開始
ダウンロード完了
3.GALAXY Tabのエミュレータを作成
「Target」に「GALAXY Tab Addon(Samsung Electronics Co., Ltd.)-API Level 8」を選択
GALAXY Tabを起動します
※エミュレータを起動する際、画面サイズが大きすぎ、Windowsの画面をオーバーしまった場合、「Scale display to real size」をチェックONし、「Screen Size(in)」に値を編集すれば、縮小できます。
なお、私のPCディスプレイはこの値を「7」にすれば問題なく起動できました。

[Android Emulator] Sony Ericsson XPERIA X10にAndroid 2.3.1

以前、[Android Emulator] Sony Ericsson XPERIA X10 エミュレータ ではSony Ericsson XPERIA X10 エミュレータの作成手順を紹介しましたが、今回はSony Ericsson XPERIA X10のスキンを利用して、Android 2.3.1のAVDを作成手順を紹介します。
※外のスキンだけがSony Ericsson XPERIA X10で、中身はAndroid 2.3.1です。

1. 以前の投稿に紹介した解凍した\XPERIA-X10_r1\skinsの「X10」フォルダを「ANDROID_SDK」\platforms\android-9\skins」フォルダに移動します。
※ ANDROID_SDKはAndroidのSDKをインストールフォルダです。Windows7 64ビット2のデフォルトの場合、「C:\Program Files (x86)\android-sdk-windows\platforms\android-9\skins」になります。

2.「Android SDK and AVD Manager」 を起動します
※起動方法は「Android開発 4.Android Virtual Devices(AVD)の作成 」を参照してください。

3.「New...」ボタンを選択し、AVD作成画面が起動されます
Targetを「Android 2.3.1 - API Level 9」、「Skin」の「Built-in」を「X10」に選択します
 4.AVDを起動します

[Android Emulator] Google NEXUSONE Skin

今回はNEXUSONEのスキンを使用してエミュレータを作成する手順を紹介します。
1.まず、 Google NEXUSONE Skinをダウンロードします。

2.ダウンロードしたファイルを解凍し、「ANDROID_SDK」\platforms\android-x\skins」フォルダに移動します。
※ANDROID_SDKはAndroidのSDKをインストールフォルダです。Windows7 64ビット、Android 2.2のデフォルトの場合、「C:\Program Files (x86)\android-sdk-windows\platforms\android-8\skins」になります。

3.「Android SDK and AVD Manager」 を起動します
※起動方法は「Android開発 4.Android Virtual Devices(AVD)の作成 」を参照してください。

4.「New...」ボタンを選択し、AVD作成画面が起動されます
Targetをコピー先を正しく選択すれば、「Skin」の「Built-in」に「nexusone」が選択できます
 5.作成したAVDを起動します