ボタンをクリックしたときのアクションを設定しよう


前回ボタンの大きさをソース上で変更する所までを実装してみました。
続いては、そのボタンをクリックした時に何かしらの動作をさせてみましょう。

ボタンをクリックした時に動作をさせる方法はこちら

  • クラスを規定している後ろのほうに「implements View.OnClickListener」を追加します。
  • このままだとエラーが出るので、「onClick関数」を追加します。
  • 方法は赤い×が出ている部分をクリックすると出てくる「実装されていないメソッドを追加」を選択する事で、ソースの中に「onClick関数」が追加されます。
  • 続いて、ボタンをクリックするよって言うのを「setOnClickListener」を使ってボタンビューにセットします。

これでボタンを押した時に「onClick関数」が動くようになりました。
続いてはボタンが押された時の処理をonClick関数内に書いてみます。
「onClick関数」はクリックされたビューIDを引数に受け取るので、関数内でどのIDを受け取ったかを判別して処理を行いましょう。

方法はこちら

  • 「onClick関数」の引数とイベントを設定したいボタンビューIDを比べます。
  • IDが一致したら「setText」でボタンビューにテキストをセット。

今回はボタンを押したら「Click」と表示する様にします。
ボタンは1つしかないのでIDを比べる必要はありませんが、今後ボタンが増えた時の事を考えてIDを比較する様にしてあります。

サンプルはこんな感じ

  1. public class BtnTest extends Activity implements View.OnClickListener
  2. {
  3.     private Button Btn01;
  4.  
  5.     @Override
  6.     public void onCreate(Bundle savedInstanceState) {
  7.         super.onCreate(savedInstanceState);
  8.  
  9.         /* タスクバー削除 */
  10.         this.requestWindowFeature(Window.FEATURE_NO_TITLE);
  11.  
  12.         setContentView(R.layout.main);
  13.  
  14.         /* ステータスバー削除 */
  15.         getWindow().addFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN)
  16.  
  17.         /* Windowサイズ取得 */
  18.         WindowManager windowmanager = (WindowManager)getSystemService(WINDOW_SERVICE);
  19.         Display disp = windowmanager.getDefaultDisplay();
  20.         int width = disp.getWidth();
  21.         int height = disp.getHeight();
  22.  
  23.         /* ボタンビューのIDを取得 */
  24.         Btn01 =  (Button) findViewById(R.id.Btn01);
  25.         Btn01.setText("fullxfull");
  26.         /* ボタンサイズの設定 */
  27.         Btn01.setWidth(width);
  28.         Btn01.setHeight(height);
  29.         /* ボタンビューにクリックイベントをセット */
  30.         Btn01.setOnClickListener(this);
  31.     }
  32.  
  33.     @Override
  34.     public void onClick(View arg0) {
  35.         // TODO Auto-generated method stub
  36.         if(arg0 == Btn01){
  37.             Btn01.setText("Click");
  38.         }
  39.     }
  40. }

これで、ボタンをクリックして処理を行える様になります。


Tags:

Leave a Reply