FC2ブログ

忘れな~い録

プログラミングの備忘録

移転しました
http://www.tkyaji.com/

Android開発の基本

前回Androidプロジェクトを作成するところまで説明した。
今回は初期状態のプロジェクトを編集し、簡単なアプリを作成してみる。

完成形は以下になる。ラベル、テキストボックス、ボタンを1つずつ配置。
ボタンを押したらテキストボックスの値が、ラベルに反映される。

Android テストアプリ


1.レイアウトの変更


まずはレイアウトを編集する。プロジェクト内に「res/layout」というディレクトリがあり、
この配下のxmlファイルがレイアウト構成用のファイルになる。
前回プロジェクトを作成しただけの状態であれば、「main.xml」というファイルがあるはず。
これをダブルクリックで開けば、自動的に「Android Layout Editor」が起動される。
「Android Layout Editor」から「main.xml」を開いた状態が以下の通り。

Android Layout Editor


左の「Layouts」というサイドバーから、使いたいコンポーネントを画面にドラッグすれば、コンポーネントを追加できる。
ラベルコンポーネントである、「TextView」のみが存在する状態になっているため、
この下に「EditText」「Button」をそれぞれ追加する。2つを追加した状態が以下の通り。

Android Layout Editor


追加したら、それぞれのコンポーネントのプロパティを変更していく。
Eclipseのプロパティビューを開き、以下の通り、それぞれの値を変更する。

TextView

EditText

Button
「Text」の値を「Button」に変更する。
これはボタンのラベルになる。日本語も使用可能だが、Layout Editor上では文字化けして見える。
  • 「Layout gravity」の値を「center」に変更する。
    これでボタンの位置が中央になる。


  • Android Layout Editor

    レイアウトの準備は以上で完了。
    なお、コンポーネントを削除したい場合は、Eclipseの「アウトライン」ビューから削除したいコンポーネントを選択し、
    「-」ボタンをクリックすると、削除することができる。


    2.ソースを変更する。


    レイアウトの次はソースの変更。Activityクラスが1つのみ存在しているはずなので、これを以下のように編集する。

    package com.wasurenairoku;

    import android.app.Activity;
    import android.os.Bundle;
    import android.view.View;
    import android.view.View.OnClickListener;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.TextView;

    public class TestActivity extends Activity {

    private TextView textView;
    private EditText editText;
    private Button button;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    textView = (TextView) findViewById(R.id.TextView01);
    editText = (EditText) findViewById(R.id.EditText01);
    button = (Button) findViewById(R.id.Button01);


    button.setOnClickListener(new OnClickListener() {
    @Override
    public void onClick(View v) {
    textView.setText(editText.getText().toString());
    }
    });

    }
    }

    上記のソースについて、少し説明しておく。

    findViewById
    レイアウトで追加したコンポーネントとJavaのクラスのマッピングを行うためのメソッドがこれ。
    引数にはコンポーネントのidを指定する。idは「R.id」というクラスで全て管理されている。
    Layout Editor で編集した際に、「R.id」クラスに自動的にidの定数が追加されるため、この定数を使用することになる。
    findViewByIdで返却されるのは「View」というスーパークラスのため、一致したクラスにキャストして取得する。

    Button#setOnClickListener
    このあたりの実装方法は、JavaのGUIやGWTとほぼ同じだ。
    引数は「OnClickListener」クラスになるので、ここでは無名クラス(匿名クラス)を生成している。
    「OnClickListener」クラスに「onClick」メソッドを追加し、このメソッドの中にボタンをクリックした際の処理を記述する。
    ここではボタンをクリックした際に、TextViewに対し、EditTextの値を設定している。


    以上で実装完了。実行画面は以下の通り。

    Android テストアプリ


    以上。
    スポンサーサイト





    1. 2009/11/07(土) 00:54:01|
    2. Android
    3. | トラックバック:0
    4. | コメント:0
    <<AndroidでGoogleMap | ホーム | はじめてのAndroid開発>>
    コメント
    コメントの投稿

    管理者にだけ表示を許可する

    トラックバック
    トラックバックURLはこちら
    http://yajiblog.blog101.fc2.com/tb.php/34-1f51300e
    この記事にトラックバックする(FC2ブログユーザー)
    最新記事

    月別アーカイブ

    カテゴリ

    未分類 (0)
    日記 (1)
    GWT (14)
    Java (10)
    Linux (3)
    VBA (2)
    XML (1)
    Android (6)
    Lucene (6)
    Hadoop (1)
    iBATIS (2)
    dojo toolkit (1)
    HTML5 (1)
    iPhoneアプリ (1)

    全記事表示リンク

    全ての記事を表示する

    メールフォーム

    名前:
    メール:
    件名:
    本文:

    検索フォーム

    RSSリンクの表示

    リンク

    このブログをリンクに追加する

    ブロとも申請フォーム

    この人とブロともになる

    QRコード

    QRコード