≪ 2010. 10 123456789101112131415161718192021222324252627282930 2010. 12 ≫
Android(アンドロイド)アプリ入門ブログ > 2010年11月

スポンサーサイト 

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。
--. --. --. (--) --:--  [スポンサー広告コメント:-  トラックバック:-

動的な Android GUI の作成方法 

今回は動的なAndroid GUIの作成方法を紹介したいと思います。
動的なAndroid GUIの作成はプログラム内でボタン等を生成することで、
アプリの動作の状況に応じてGUIを追加・変更したい場合に有効な手段となります。


動的な Android GUI の作成方法


今回はクリックすると文字が変化するボタンを動的に追加したいと思います。
以下サンプルソースです。

package パッケージ名;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;<
import android.widget.LinearLayout;

public class アクティビティクラス名 extends Activity {

    /** Called when the activity is first created. */
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        /* レイアウトを作成する */
        LinearLayout layout = new LinearLayout(this);
        layout.setOrientation(LinearLayout.VERTICAL);

        /* アクティビティにビューをレイアウトをセットする */
        setContentView(layout);

        /* ボタンを作成する */
        Button btn = new Button(this);
        btn.setText("動的に作成したボタン");

        /* ボタンクリックリスナークラスを作って登録する */
        ClickListener listener = new ClickListener();
        btn.setOnClickListener(listener);
/* レイアウトにボタンを登録する */ layout.addView(btn); } class ClickListener implements OnClickListener { @Override public void onClick(View v) { Button b = (Button)v; b.setText("ボタンが押されました"); } }; }

解説

パッケージ名とアクティビティクラス名にはそれぞれ、自分が作成したプロジェクト内の名前を使用してください。
まずAndroid GUIを表現するにはレイアウトという枠が必要となるので

LinearLayout layout = new LinearLayout(this);

で作成しています。

layout.setOrientation(LinearLayout.VERTICAL);

はコントロールを縦に並べるという値をセットしています。

setContentView(layout);

でこのレイアウトをアクティビティに関連付けます。

Button btn = new Button(this);

でボタンを作成しています。この部分を

TextView txt = new TextView(this);

等他のコントロールにすることでボタン以外のコントロールを作成することができます。
ClickListener listener = new ClickListener();
btn.setOnClickListener(listener);

クリックされた時の動作を実装するClickListenerクラスをボタンに登録しています。
ClickListenerクラスは自分で作成したクラスです。

layout.addView(btn);

レイアウトに作成したボタンを追加しています。

class ClickListener implements OnClickListener {
@Override
public void onClick(View v) {
Button b = (Button)v;
b.setText("ボタンが押されました");
}
};

これがボタンが押されたときの内容を実装するためのClickListenerクラスです。
名前はClickListenerではなくても構いません。
OnClickListenerはクリックされたときのメソッドが定義されたインターフェースです。 implementsはクラスにインターフェースを関連付けるために使用します。
implementsでインタフェースを関連付けた場合、インタフェース内で定義されたメソッドの本体を定義する必要があります。
今回の場合はonClickがメソッドです。
onClick内の実装はボタンが押されたときに、ボタンの文字を"ボタンが押されました"と変化するようにしています。


このアプリを実行すると以下のようになります。

動的なGUIの作成1


ボタンをクリックすると・・・


動的なGUIの作成2


これを応用していろいろなコントロールを追加してみてください。
スポンサーサイト
2010. 11. 16. (Tue) 20:16  [プロジェクト作成コメント:0  トラックバック:-

SoftBank携帯のAndorid2.2搭載による改善点 

SoftBank携帯のAndorid2.2搭載による改善点


Andorid2.2になって改善される共通点は、

・javascriptの実行速度向上
・標準でAdobe Flash 10.1に対応
・画像や動画ファイルを直接アップロード可能
・AndroidアプリをMicro SDカードに保存可能

※SoftBank 004HW、SoftBank 003ZはFlash® 10.1に非対応です。
※Adobe Flash 10.1は『ニコニコ動画』『Ustream』が視聴可能


HTC Desireはさらに以下の点が改善されるようです。

・Bluetoothアドレス交換
・MMS(S!メール)対応
・Androidアプリの自動/一括アップデート
・Androidアプリをメールで共有
・マルチタッチに対応
・Google 音声検索
・複数のGoogle™ アカウントと同期可能

Android™ 2.2が標準搭載されていない
HTC Desire SoftBank X06HTとHTC Desire SoftBank X06HTIIも
Android™ 2.2へのアップデートが可能です。


GALAPAGOS SoftBank 003SHの情報はこちら >> GALAPAGOS SoftBank 003SH
DELL Streak SoftBank 001DLの情報はこちら >> DELL Streak SoftBank 001DL


以下Android2.2搭載モデルのバナーリンクです。

  

2010. 11. 13. (Sat) 03:11  [よくある質問コメント:0  トラックバック:-

Activityのライフサイクルと確認方法 

今回はActivityのライフサイクルを確認したいと思います。

まずAndroidアプリのActivityのライフサイクルを図で確認したいと思います。

Activityのライフサイクルと確認方法



Activityの遷移


AndroidアプリのActivityのライフサイクルは上記図のようなフローになっていて、
onCreate()やonStart()等のon~()関数は、フローのタイミングで自動に呼ばれます。
このon~()関数を継承して、これらのタイミングに行いたい処理を記述します。

ちなみにこの図は元「Jude(ジュード)」だった、「astah*(アスタ)」という名前のUMLモデリングツールで書いています。
私個人としてはプログラム設計に必須となっている、オススメのフリーのツールです。


ライフサイクルの確認方法


以下は実際に継承してデバッグコードを記述したサンプルソースです。


package aaa.bbb;

import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;

public class new_project extends Activity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Toast.makeText(this, "onCreate()", Toast.LENGTH_LONG).show();
    }

    public void onStart() {
        super.onStart();

        Toast.makeText(this, "onStart()", Toast.LENGTH_LONG).show();
    }
    public void onResume() {
        super.onResume();

        Toast.makeText(this, "onResume()", Toast.LENGTH_LONG).show();
        finish();
    }

    public void onPause() {
        super.onPause();

        Toast.makeText(this, "onPause()", Toast.LENGTH_LONG).show();
    }

    public void onStop() {
        super.onStop();

        Toast.makeText(this, "onStop()", Toast.LENGTH_LONG).show();
    }

    public void onDestroy() {<
        super.onDestroy();

        Toast.makeText(this, "onDestroy()", Toast.LENGTH_LONG).show();
    }
}


Toast(トースト)クラスはデバッグに便利なクラスで、
makeText()関数でで設定した文字列をshow()関数で表示することができます。

finish()関数はActivityを終了するための関数で、
onResumeが呼び出された時にActivityを終了させています。

このサンプルを実行すると、


onCreate.gif


が表示され、順次on~()が表示されていき、
上から下へ一直線のライフサイクルの確認ができます。


Toast(トースト)クラスは便利なので、その他のデバッグ用途にも使用してみてください。

Android Pluginのリポジトリーが追加できない(Duplicate location) 

Android Pluginのリポジトリーが追加できない(Duplicate location)


Duplicate location


上記のように「Duplicate location」というエラーが出てリポジトリーを追加できない場合は、すでにリポジトリが追加されています。


作業対象選択





2010. 11. 01. (Mon) 01:10  [よくある質問コメント:0  トラックバック:-

AVD(Android Virtual Device)の作成時に「Create AVD」ボタンが有効にならない 

AVD(Android Virtual Device)の作成時に「Create AVD」ボタンが有効にならない原因で最も多いのが、
「名前」欄に許可されていない文字を使用している場合です。

スペース等も禁止されているので気をつけてください。
2010. 11. 01. (Mon) 00:36  [よくある質問コメント:0  トラックバック:-

Android SDK and AVD Manager が起動しない 

AVDマネージャが立ち上がらない

メニューの「Android SDK and AVD Manager」やAVDボタンを押しても上記のようなエラーがでて「Android SDK and AVD Manager」起動しない場合は、Eclipse(エクリプス)にAndroid SDKのパスを設定していない可能性があります。

設定方法は Eclipse(エクリプス)にAndroid SDKのパスを設定するで確認してください。
2010. 11. 01. (Mon) 00:32  [よくある質問コメント:2  トラックバック:-

開発環境構築

Androidアプリの仕組み

よくある質問

WiMAX、その他

Xperia X10 mini pro

SoftBankスマートフォン

WiMAX ポケットWiFi


アンドロイドスマートフォン

EM ポケットWifi (イーモバイル)

Google Nexus 7

Nikon Android デジカメ

Android技術者認定試験教科書

Androidスマフォ充電用MicroUSBケーブル

PLANEX Xperia・X06HT HTC Desire対応 充電&データ転送 MicroUSBケーブル ブラック (パソコン接続専用)BN-XperiaPB

モバイル機器用ACアダプタ

PLANEX 「充電万能」 2ポートUSB充電器 ブラック PL-WUCHG01-B Xperia,ウォークマンNW-X1060,X06HT,iPod,iPhone 3G/3GS/4, PSP, DS, DSLite, DSi 対応USB ACアダプタ (海外対応)

リンク

最新記事

カテゴリ

RSSリンクの表示

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。