Activity

2018/04/09

Activityは、Androidアプリにおけるアプリ画面のクラス・・・。

Activity | Android Developers

Activityの説明というよりも、今回はAndroidアプリ作成の基本から・・・。
ADTのEclipseの場合は、

f:id:BG1:20160212170902p:plain

[File]-[New]-[Android Application Project]を選択・・・。

f:id:BG1:20160212170946p:plain

今回はActivity_プロジェクトという名前でこんな感じで・・・。

f:id:BG1:20160212171021p:plain

デフォルトで・・・。

f:id:BG1:20160212171031p:plain

デフォルトで・・・。

f:id:BG1:20160212171051p:plain

今回はシンプルに[Empty Activity]で・・・。

f:id:BG1:20160212171147p:plain

MainActivityで・・・。

これでプロジェクトはできるのだが、[Package Explorer]に"!"とか"×"マークが付いてるかもしれないので、手動で再ビルドする・・・。

f:id:BG1:20160212171305p:plain

[Build Automatically]のチェックを外して、

f:id:BG1:20160212171400p:plain

で、

f:id:BG1:20160212171518p:plain

[Clean]を押すと、

f:id:BG1:20160212171704p:plain

[Start a build immediately]にチェックが付いてるので外して、

f:id:BG1:20160212171804p:plain

[OK]を押す・・・。これでクリーンされる・・・。

そして、

f:id:BG1:20160212172233p:plain

[Build All]でもう一度全てビルド・・・。

この流れを、"!"とか"×"が消えるまで繰り返し行う・・・。

で実行は、

f:id:BG1:20160212172541p:plain

緑の再生ボタン("Run As..."と出てる)を押して、

f:id:BG1:20160212172613p:plain

"Android Application"を選択・・・。

f:id:BG1:20160212172656p:plain

エミュレータが起動したら、

f:id:BG1:20160212172733p:plain

右にスライドして、ロックを解除・・・。

f:id:BG1:20160212172830p:plain

まだ起動していない・・・。

しかし、

f:id:BG1:20160212172907p:plain

しばらくすると、"Hello world!"が出る・・・。

しくみをざっと軽く説明・・・。

アプリのメイン画面のプログラム部分・・・。
アプリ画面クラスActivityの派生クラスとしてMainActivityが定義されていて、これのonCreateがエントリポイントになっている・・・。
R.layout.activity_mainは、このMainActivityのレイアウトが定義されているリソーステンプレートを指している・・・。
それをsetContentViewすることで画面に出している・・・。

R.layout.activity_mainはどこにあるかというと、

f:id:BG1:20160212173257p:plain

Activity_/res/layout/activity_main.xmlにある・・・。

ここで画面レイアウトを決める・・・。
とりあえずは、TextViewタグの中にhello_worldってのがあるのだけ見ていればいい・・・。

で、このhello_worldってのはさらに、

f:id:BG1:20160212173457p:plain

Activity_/res/values/strings.xmlが定義元・・・。

この"Hello world!"を表示している・・・。

でapp_nameも"Activity_"が定義されている・・・。
これは、

f:id:BG1:20160212173710p:plain

アプリのさまざまな設定を定義しているAndroidManifest.xmlに何箇所かあって、そこに反映される・・・。

ざっとこんな構成・・・。
というわけで、とくに編集しなくても"Hello world!"が表示できてしまったわけ・・・。

Sample/MainActivity.java at master · bg1bgst333/Sample · GitHub
Sample/activity_main.xml at master · bg1bgst333/Sample · GitHub
Sample/strings.xml at master · bg1bgst333/Sample · GitHub
Sample/AndroidManifest.xml at master · bg1bgst333/Sample · GitHub