デフォルトのプログラムを変更してみる
3.プログラムを変更してみる
では早速、プログラム・コードを見てみよう。
例によってパッケージ・エクスプローラーから開くんだけれども、「AndroidTest」のツリーがすでに展開されてるはずだ。
そのツリーの中で、「src」→「android.test」→「AndroidTestActivity.java」の順にダブルクリックしてみる。
すると、中央のペインにプログラム・コードが表示されたね。
これがEclipseが自動で作成する、JAVA言語のデフォルトのプログラムだ。
わずか20数行のとても短いコードだけれども、これによってアプリが実行され、AVD上で画面表示されてたわけだ。
ではデフォルトの内容はとりあえず深く考えず、とにかくプログラムの変更に取り掛かるとするか。
最初に、以下のように赤字のコードを1行追加してみよう。
package test.android;
import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
public class AndroidTestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_android_test);
findViewById(R.id.button1).setOnClickListener(new View.OnClickListener());
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_android_test, menu);
return true;
}
}
ここで「findViewById」というのは"ID"によって、ビューを特定するためのメソッド(関数のようなもの)だ。
ビューっていうのは、アプリの画面上のボタンやテキスト・ボックス等のUI(User Interface)部品のことだね。
つまりこれは、「button1」というIDによってボタンを識別するためのメソッドだ。
このIDは、実はボタンを作成した際にEclipseが自動でつけたもので、「activity_android_test.xml」を見ると「@+id/button1」という記載が確認できる。
それから「button1」の前の「R.id.」については、これもEclipseが自動で作成するファイルが関係してくる部分なんだな。
でも気にしなくても特に問題ない部分なので、今はとりあえず考えないことにしてくれ、頼む。
そして「findViewById」の後に続く、「setOnClickListener」はユーザのクリック操作を感知するためのメソッドだ。
というか実際に感知するのは、その引数となっている「OnClickListener」のほうで、「setOnClickListener」は名前のとおりそれを「set」してると思えばイメージしやすいかな。
ちなみに「〜Listener」ってのは、ユーザの何らかの操作を感知する関係のメソッドだと憶えておくといーんじゃね?
憶えといて、損はねーんじゃね?
次にプログラムを以下のように、さらに変更する。
赤字の部分が、追加したコードだ。
package test.android;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
public class AndroidTestActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
findViewById(R.id.button1).setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
new AlertDialog.Builder(AndroidTestActivity.this).
setMessage("世界よ、オレの前にひざまずけ").show();
}
});
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.activity_android_test, menu);
return true;
}
}
この追加した「onClick」というメッソッドが、実際にクリックしたときの処理になる。
「OnClickListener」でクリックを感知した後に、「onClick」の処理が実行されるわけだ。
そしてその処理を定義したのが、直後の1行にあたる。
ここで「AlertDialog」の「Builder」というメソッドが、メッセージ・ダイアログを表示するようになってるんだね。
まぁ、細かい部分は不明な部分があるだろうけれども、このプログラムがどんな具合に動作するか、なんとなくイメージできたんじゃないかな。
とにかく実際の動きは、AVDで試してみればすぐに分かる。
でもその前に、やらなければならないことが1つ。
実は、このプログラムには、まだ足りない部分があるんだね。