Your SlideShare is downloading. ×
0
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
【Android勉強会】第一回Activity & intent
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

【Android勉強会】第一回Activity & intent

920

Published on

0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
920
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
6
Comments
0
Likes
1
Embeds 0
No embeds

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

  • 1. Ishin FUKUOKA Activity & Intent
  • 2. Activity & Intent  Activityとは  Activityのライフサイクル  レイアウトリソースとの関連付け・イベントリ スナー
  • 3. Activity & Intent  Intentとは  明示的インテント/暗黙的インテント  アクティビティの構造
  • 4. Activityとは
  • 5. Activity=画面いやまあ正確には違うんだけど…
  • 6. 内容(ざっくり) @Overrid protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ……… } 画面での初期処理を行なう 詳しくは次のライフサイクルの説明で setContentView(layout); 引数にとったlayouをActivityに追加する findViewById(id); 引数にとったidのViewを取得
  • 7. Activityのライフサイル
  • 8. Activityのライフサイクル  onCreate() アクティビティの生成時に呼ばれ る。画面の初期化やビューとの関連付など。  onPause() アクティビティが表示画面から離 れるとき アクティビティの一生・・・onCreate() ~ onDestroy() 画面が存在する期間・・・onStart()~onStop() ユーザが操作(タッチ等)できる期間・・・onResume() ~ onPause()
  • 9. Activityのライフサイクル  アクティビティはスタック構造で管理されて いる  アクティビティが新たに生成されるとスタッ クに積まれる  ユーザが操作できるのはスタックの一番上に あるアクティビティ  詳しくはIntentのあとで
  • 10. レイアウトリソース との関連付け・イベントリスナー
  • 11. レイアウトリソースとの関連付け Button button = (Button)findViewById①(R.id.button);  xmlファイルに記述したボタンなどのビューに関 して,Javaソースでidを引数に取ることによってそ のオブジェクトを取得できる →findViewById(id)  取得したオブジェクトに「クリック時の振る舞 い」などをセットできる →setOnClickListener( new View.OnClickListener())
  • 12. イベントリスナーの実装 Button button = (Button)findViewById①(R.id.button); button.setOnClickListener②(new View.OnClickListener() { public void onClick(View v)③ { Intent intent=new Intent(MainActivity.this, SecondActivity.class); startActivity(intent); } }); ①idからButtonオブジェクトを取得 ②View.setOnclickListener(View.OnClickListener i)メソッドでbuttonオブ ジェクトがクリックされた時の振る舞いを実装 ③View.OnClickListenerインターフェースの抽象メソッドonClick(View v)に て処理を記述
  • 13. イベントリスナーの実装 別の書き方(こっちの方が馴染みがあるかも) ……… Button button = (Button)findViewById①(R.id.button); button.setOnClickListener②(new ButtonClickListener()); } class ButtonClickListener implements OnClickListener{ public void onClick(View v)③ { Intent intent=new Intent(MainActivity.this, SecondActivity.class); startActivity(intent); } };
  • 14. レイアウトリソースとの関連付け イベントリスナー以外にも テキストビューに文字を設定したり、EditTextから 文字を取得したり様々なことができる。 TextView tv = (TextView)findViewById(R.id.tv1); tv.setText(“XXX”); UI操作はイベントリスナーでだいたいできる
  • 15. Intentとは
  • 16. Intentとは  あるコンポーネントからの要求(メッセージ)をシ ステムへ投げる仕組み。アクティビティやサービ スなどに対して何かしらの動作を要求するときに メッセージを投げる。  アクティビティやサービスで使われる(今回はア クティビティでの使い方のみ説明します)  アクティビティの画面遷移などでよく使われる アプリ内の遷移→明示的インテント アプリ間の遷移→暗黙的インテント
  • 17. Intentとは 呼び出し元のアクティビティがMainActivity, 呼び出し先のアクティビティがSecondActivityの 場合 (=Mainactivity→SecondActivityの画面遷移) Intent intent=new Intent(MainActivity.this, SecondActivity.class); startActivity(intent);
  • 18. 明示的インテント
  • 19. 明示的インテント  Intentクラスのインスタンスを生成, startActivity(intent)で遷移先のアクティビティ がスタックに積まれる  Intent.putExtra(String Key,Object obj)でアクティ ビティ間でデータを渡すことができる。
  • 20. 明示的インテント 呼び出し元のアクティビティ(データ送る側) Intent intent=new Intent(MainActivity.this, SecondActivity.class); Intent.putExtra(“KEY”,value); //String型の変数value startActivity(intent); 遷移先のアクティビティ(データ受け取る側) Intent i= getIntent(); String value = i.getStringExtra(“KEY”);
  • 21. 暗黙的インテント
  • 22. 暗黙的インテント  インテントを使う際に呼び出したいアプリの条件 を指定することでAndroidが条件に合うインテント フィルタを持つアプリを抽出してくれる  暗黙的インテントを使うことで他アプリと連携す ることができる Intent-filter  AndroidManifest.xmlに記載  呼び出される側で設定
  • 23. 暗黙的インテント  ブラウザ呼び出し Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("http://www.google.co.jp"));  地図呼び出し Intent intent = new Intent(Intent.ACTION_VIEW,Uri.parse("geo:0,0?waseda"));  共有呼び出し(テキストデータ渡し) Intent intent = new Intent(); intent.setAction(Intent.ACTION_SEND); intent.setType("text/plain"); intent.putExtra(Intent.EXTRA_TEXT,"Hello,Google");
  • 24. 暗黙的インテント  最初に表示されるアクティビティに設定されているインテントフィルタ <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter>  テキストを受け取るインテントフィルタ <intent-filter> <action android:name="android.intent.action.SEND" /> <category android:name="android.intent.category.DEFAULT" /> <data android:mimeType="text/plain"/> </intent-filter>
  • 25. Activityの構造
  • 26. Activityの構造  スタック ― 複数のアクティビティを管理する 構造  タスク ― アクティビティ遷移の一連の流れを まとめたもの。一つのアプリケーションから遷 移したアクティビティは同じタスクに入る。
  • 27. Activityの構造 あるアプリのアクティビティActivityA, ActivityB ActivityA ActivityA ActivityB ActivityA ActivityB ActivityA 全てデフォルトでは同じタスクで管理される。 また、同じアクティビティでも新たに生成され スタックに積まれる。 ActivityA
  • 28. Activityの構造 あるアプリのアクティビティ ActivityA, ActivityB 暗黙的インテントでActivityBから呼び出された別のアプ リのアクティビティ ActivityP ActivityA ActivityA ActivityB ActivityA ActivityB ActivityP 全て同じスタックの上に積まれ、同じタスクで管理される。 →LaunchModeで管理方法を変えられる
  • 29. Activityの構造:LaunchMode  AndroidManifest.xmlのactivityタグに記述 <activity android:name="sample.myapplication3.app.ActivityA" android:launchMode="standard"> </activity>  standard,singleTop,singleTask,singleInstanceの4種
  • 30. Activityの構造:LaunchMode ActivityA,ActivityB:standard ActivityA ActivityA ActivityB ActivityA ActivityB ActivityA ActivityB 呼出 ActivityA 呼出
  • 31. Activityの構造:LaunchMode ActivityA:standard ActivityB:singleTop ActivityA ActivityA ActivityB ActivityA ActivityB ActivityB 呼出 ActivityB 呼出 onNewIntent()
  • 32. Activityの構造:LaunchMode ActivityA:standard ActivityB:singleTask ActivityB ActivityB ActivityA ActivityB ActivityA 呼出 ActivityB 呼出 onNewIntent() finish(),バックキー押 下時と同じ動き
  • 33. Activityの構造:LaunchMode ActivityA,ActivityC:standard ActivityB:singleInstance ActivityA ActivityA ActivityB ActivityB 呼出 ActivityC 呼出 ActivityA ActivityC
  • 34. まとめ  Activityとは  Activityのライフサイクル  ActivityとLayoutファイルの関連付け、イベントリ スナーの実装 Button btn = (Button)findViewById(R.id.btn); btn.setOnClickListener(. . . . .( )
  • 35. まとめ  Intentとは  明示的インテント/暗黙的インテント Intent intent = new Intent(Main.this,Second.class); startActivity(intent);  Activityのスタック構造とインテントによる呼び 出しの仕組み ( )
  • 36. Thank you for Listening.
  • 37. 演習  イベントリスナー+画面遷移+値渡し Click!

×