private Button button;XMLでレイアウトに組み込んだコンポーネントは、Java側ではandroid.widgetパッケージの「TextView」「EditText」「Button」といったクラスのインスタンスとして扱われます。onCreateでは、コンポーネント関係のインスタンスを、用意したフィールドに設定します。こうして用意されたオブジェクトを操作することで、レイアウトしたコンポーネントをプログラム内から扱えるようになるのです。
private EditText edit;
private TextView text;
button = (Button)this.findViewById(R.id.button);これらのインスタンスは、Activity内(つまりthis内)にある「findViewById」というメソッドを利用して取得します。これは、引数に指定したIDのコンポーネントを示すインスタンスを得るものです。いずれも「new ○○」というように直接インスタンスを作成するのではなく、あくまで「Activityから受け取る」ようになっているのですね。
edit = (EditText)this.findViewById(R.id.edit);
text = (TextView)this.findViewById(R.id.text);
button.setOnClickListener(new MyClickAdapter());ボタンクリック時のイベント処理は、「setOnClickListener」というメソッドで設定をします。これは引数にOnClickListenerインターフェイスを実装したクラスを指定します。ここでは、MyClickAdapterという内部クラスを用意して利用していますね。これは以下のように定義されています。
class MyClickAdapter implements OnClickListener {
@Override
public void onClick(View v) {
Editable s = edit.getText();
text.setText("こんにちは、" + s + "さん。");
}
}このOnClickListenerインターフェイスでは、「onClick」というメソッドが1つだけ用意されています。これが、クリックされたときの処理を行うものになります。引数には、イベントが発生したViewインスタンスが渡されます。※リストが表示されない場合
AddBlockなどの広告ブロックツールがONになっているとリストなどが表示されない場合があります。これらのツールをOFFにしてみてください。
private Button button;
private EditText edit;
private TextView text;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
setContentView(R.layout.main);
button = (Button)this.findViewById(R.id.button);
edit = (EditText)this.findViewById(R.id.edit);
text = (TextView)this.findViewById(R.id.text);
button.setOnClickListener(new MyClickAdapter());
}
class MyClickAdapter implements OnClickListener {
@Override
public void onClick(View v) {
Editable s = edit.getText();
text.setText("こんにちは、" + s + "さん。");
}
}
| << 前へ | 次へ >> |