Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Androidアプリのしくみ

@nekoruri
November 02, 2013

 Androidアプリのしくみ

Androidアプリのしくみ
(オブジェクト指向の基礎の基礎)

日本Androidの会 秋葉原支部
コスプレ理系女子普及部
第18回定例会 LT資料

@nekoruri

November 02, 2013
Tweet

More Decks by @nekoruri

Other Decks in Technology

Transcript

  1. 日本Androidの会 秋葉原支部 コスプレ理系女子普及部 第18回定例会

  2. 今まで書いてきたプログラムを、 「外側」 から説明してみます。

  3. なんとなくでいいので イメージ を掴めると理解がすすむ 今まで書いてきたプログラムを、 「外側」 から説明してみます。

  4. なんとなくでいいので イメージ を掴めると理解がすすむ はず! 今まで書いてきたプログラムを、 「外側」 から説明してみます。

  5. public class MainActivity extends Activity { @Override protected void onCreate(Bundle

    savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } } アプリを起動したら、 onCreateを呼ぶよ!
  6. 実はonCreate以外にも呼んでるよ! 削除したonCreateOptionsMenuとかね! たくさんの「基本的な動き方」が、ひな形( Activity )に書かれています。 いつも最初に削除するonCreateOptionsMenuもです。 それを呼んでいるのが「 super.onCreate 」です。 public

    class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } }
  7. Activity Androidアプリの基本的な動き方が 書かれています MainActivity 自分のアプリ独自の部分を書きます MainActivityに書かれていないことは、 Activityに書いてあることをやるよ!

  8. public class MainActivity extends Activity { (onCreateは省略) public void onClick1(View

    v){ setContentView(R.layout.self_introduction); } } ボタンがクリックされたら onClick1を呼ぶよ! そしたら、setContentViewするよ!
  9. setContentViewしろって言われたけど、 MainActivityには書いていないから、 Activityに書いてある内容を実行するね! 実は、setContentView の内容は Activity に書かれています。 そういう、呼ぶと何かしてくれる「メソッド」がたくさん定義されています。 public class

    MainActivity extends Activity { (onCreateは省略) public void onClick1(View v){ setContentView(R.layout.self_introduction); } }
  10.  公式ドキュメントを見てみよう http://developer.android.com/reference/android/app/Activity.html  「Public Methods」がメソッドの一覧

  11. public class MainActivity extends Activity { TextView tv; public void

    onClick1(View v) { setContentView(R.layout.self_introduction); tv = (TextView) findViewById(R.id.textView1); tv.setText(“実はスポーツマン”); } ボタンがクリックされたら textView1の文字を 「実はスポーツマン」に変えるよ!
  12. public class MainActivity extends Activity { TextView tv; public void

    onClick1(View v) { setContentView(R.layout.self_introduction); tv = (TextView) findViewById(R.id.textView1); tv.setText(“実はスポーツマン”); } textView1を変数 tv に入れて、 tvのsetTextメソッドを呼ぶよ!
  13. レイアウトファイルを読んで、 ボタンと文字の 「インスタンス」を作るよ! レイアウトファイル 「文字列の表示方法」 「ボタンの表示方法」 「ボタンが押されたら onClick1を呼ぶ」 こんにちは! onClick1

    ボタンが押されたら、 onClickを呼ぶよ! ボタン 文字列の「インスタンス」に setTextで文字を変えるよう 命令するよ!
  14. public class MainActivity extends Activity { TextView tv; public void

    onClick1(View v) { setContentView(R.layout.self_introduction); tv = (TextView) findViewById(R.id.textView1); tv.setText(“実はスポーツマン”); } こんにちは! ボタン findViewByIdを使って、 Androidが作ってくれたインスタンスをさす 矢印を変数にいれます この矢印を通してメソッドを呼んで、 「命令」をインスタンスに送ります レイアウトファイル に従って作られた 画像やボタンの 「インスタンス」
  15. public class MainActivity extends Activity { TextView tv; public void

    onClick1(View v) { setContentView(R.layout.self_introduction); tv = (TextView) findViewById(R.id.textView1); tv.setText(“実はスポーツマン”); tv = (TextView) findViewById(R.id.textView2); tv.setText(“わたしの戦闘力は53万です。”); } こんにちは! ボタン 自己紹介
  16. public class MainActivity extends Activity { TextView tv; public void

    onClick1(View v) { setContentView(R.layout.self_introduction); tv = (TextView) findViewById(R.id.textView1); tv.setText(“実はスポーツマン”); tv = (TextView) findViewById(R.id.textView2); tv.setText(“わたしの戦闘力は53万です。”); } こんにちは! ボタン 自己紹介 同じ変数に 「別のインスタンスをさす矢印」 をいれなおすこともできます
  17.  やっぱり公式ドキュメントを見てみよう! http://developer.android.com/reference/android/widget/TextView.html

  18.  Androidのプログラム(MainActivity)は、既にある 「ひな形」(Activity)の上に作っていきます。  レイアウトで置いたボタンや文字は、 プログラム開始時にAndroidが作ってくれます。  それぞれを「インスタンス」と言います。  findViewByIdでそのインスタンスへの「矢印」を変

    数に入れます。  変数に入れた矢印を経由して「命令」を送ります。 これが「メソッド」です。