
qqq
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
package com.example.helloandroid; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.TextView; import org.w3c.dom.Text; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { //画面が最初に表示された時に呼ばれる super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /*プログラムが起動する時、 レイアウトXMLファイルを読み込みViewを構築し画面を形成する。 (レイアウトと画面を紐付けている) これはアクティビティークラスのメソッド アクティビティーとは、アンドロイドの1つの画面に対応するのも。 ボタンや画像などのViewの配置の処理や、「画面にタッチした」、 「ボタンをクリックした」などのイベントの処理を書いていく。*/ Button tapHere2 = (Button) findViewById((R.id.tapHere2)); /*レイアウトXMLで作成したViewをプログラムから取得するには、 setContentView()の後にfindViewById()でそのViewの識別子を 指定することでViewのインスタンスを取得できる ここ以下では、このインスタンス(tapHere2)に対してイベントを処理するListenerを 指定したり、画面表示を更新(setText())したりしている。 */ tapHere2.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { TextView textView = (TextView) findViewById(R.id.textView); textView.setText("ボタンがタップされました。"); } }); } //配置されたパーツは全てViewクラスを継承したオブジェクトである。 public void onClickButton(View view){ TextView textView = (TextView) findViewById(R.id.textView); //指定したidを参照できるfindViewById() textView.setText("ボタンがタップされました"); //表示内容を変更するsetText() } /* まとめ Activity = 画面 レイアウトxml = 画面レイアウト setContentView = レイアウトxmlを読み込みビューを生成 findViewById = 読み込んだViewを参照して操作する */ } |
onCreate()
//画面が最初に表示された時に呼ばれる
iOSでいうviewdidload()
setContentView(R.layout.activity_main);
プログラムが起動する時、レイアウトXMLファイルを読み込みViewを構築し画面を形成する。(レイアウトと画面を紐付けている)。これはアクティビティークラスのメソッド。アクティビティーとは、アンドロイドの1つの画面に対応するのも。ボタンや画像などのViewの配置の処理や、「画面にタッチした」、「ボタンをクリックした」などのイベントの処理を書いていく。
findViewById()
レイアウトXMLで作成したViewをプログラムから取得するには、setContentView()の後にfindViewById()でそのViewの識別子を指定することでViewのインスタンスを取得できる。
ここ以下では、このインスタンス(tapHere2)に対してイベントを処理するListenerを
指定したり、画面表示を更新(setText())したりしている。
iOSでいうアウトレット接続
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 |
package com.example.showimages2; import androidx.appcompat.app.AppCompatActivity; import android.content.ContentProviderClient; import android.os.Bundle; import android.util.Log; import android.view.View; import android.widget.Button; import android.widget.ImageView; public class MainActivity extends AppCompatActivity { private final int HARE = 1; private final int KUMORI = 2; private final int AME = 3; private final int KAZE = 4; private final int ARASHI = 5; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); Button changeImageButton = (Button) findViewById(R.id.changeImage); // ↑ これは型キャスト。自動で入るけど、重要。 changeImageButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { //ボタンがタップされた時に実行される処理 ImageView animalImage = (ImageView) findViewById(R.id.animal); animalImage.setImageResource(R.drawable.lion); //リソースのIDは「R」。その中の画像は「drawable」 } }); KasaIruka(HARE); } private void KasaIruka(int tenki){ switch (tenki){ case AME: Log.d("行動","傘を持ってく"); break; case KUMORI: Log.d("行動","持ってかない"); break; case HARE: Log.d("行動","もてかない"); break; default: Log.d("行動", "知らん"); } } } |
onClick()
ボタンがタップされた時に実行される処理をかくメソッド
qqq