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 {このOnClickListenerインターフェイスでは、「onClick」というメソッドが1つだけ用意されています。これが、クリックされたときの処理を行うものになります。引数には、イベントが発生したViewインスタンスが渡されます。
@Override
public void onClick(View v) {
Editable s = edit.getText();
text.setText("こんにちは、" + s + "さん。");
}
}
※リストが表示されない場合
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 + "さん。"); } }
<< 前へ | 次へ >> |