ユーザー操作を受け取るために、画面上にボタンを作ってみましょう。ここでは、XMLのレイアウトファイルで画面に表示させる方法について説明します。
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, HelloButtonActivity</string> <string name="app_name">ハローボタン</string> <!-- 押しボタンに表示する文字列 --> <string name="button_label">押してね</string> </resources>
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> <!-- ボタンの定義。android:idを定義することでJavaから取り出せる --> <Button android:id="@+id/button_id" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/button_label" /> </LinearLayout>
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /* ボタンを取り出して、リスナーを登録する */ Button b = (Button)findViewById(R.id.button_id); /* .... 取り出したbにふるまいを追加できる */ }
public void onCreate(Bundle savedInstanceState) { ... /* ボタンを取り出す */ Button b = (Button)findViewById(R.id.button_id); /* リスナークラスを作って登録する */ ClickListener listener = new ClickListener(); b.setOnClickListener(listener); } class ClickListener implements OnClickListener { @Override public void onClick(View v) { Button b = (Button)v; b.setText("押したよ"); } };
package jp.hews.hellobutton; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; public class HelloButtonActivity extends Activity { /** Called when the activity is first created. */ public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /* ボタンを取り出す */ Button b = (Button)findViewById(R.id.button_id); /* リスナークラスを作って登録する */ ClickListener listener = new ClickListener(); b.setOnClickListener(listener); } class ClickListener implements OnClickListener { @Override public void onClick(View v) { Button b = (Button)v; b.setText("押したよ"); } }; }