Buttonを使用する

View

Buttonの使用方法を見ていきます。

Buttonをリソース(XML)で定義する

ButtonをXMLに定義する場合は、以下のように定義します。

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/linearlayout01"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    tools:context="jp.yocchin.viewsample.MainActivity" >

    <Button
        android:id="@+id/button01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="@string/button01"
        android:layout_gravity="center" />

</LinearLayout>

Buttonで定義可能な要素はこちらを参考にしてください。
Android Button Reference

これでボタンは表示されるようになりました。
しかし、これだけでは、ボタンとしての役割を果たしません。
クリックしても何も起こらないただの飾りになってしまいます。

Buttonのクリックイベントを作成する

それでは、ボタンがクリックされたときの処理を作成していきます。

ButtonオブジェクトをIDで取得し、クリックイベント追加します。

package jp.yocchin.viewsample;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		// ButtonオブジェクトをIDから取得 
		Button btn = (Button)this.findViewById(R.id.button01);
		
		// BUttonオブジェクトにクリックイベントを追加する
		btn.setOnClickListener(
				new View.OnClickListener() {
					public void onClick(View v) {
						// ボタンがクリックされたときに実行される処理
						Toast.makeText(MainActivity.this, "ボタン01がクリックされました", Toast.LENGTH_LONG).show();
					}
				}
			);
	}
}

クリック時の処理を実装したOnClickListenerクラスのインスタンスを作成し、
ButtonクラスのsetOnClickListenerメソッドに渡しています。
※匿名クラスを使用した実装方法になります。
プログラムを見て、あまり理解できないようであれば、先に匿名クラスについて学習することをお勧めします。

Buttonをプログラムから追加する

ある処理を実行した後に動的にButtonを追加したい場合などは、
プログラム側からButtonを追加することで実現できます。

ViewGroupオブジェクトをIDで取得し、取得したViewGroupにButtonを追加します。

package jp.yocchin.viewsample;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.activity_main);
		
		// ButtonオブジェクトをIDから取得 
		Button btn = (Button)this.findViewById(R.id.button01);
		
		// BUttonオブジェクトにクリックイベントを追加する
		btn.setOnClickListener(
				new View.OnClickListener() {
					public void onClick(View v) {
						// ボタンがクリックされたときに実行される処理
						Toast.makeText(MainActivity.this, "ボタン01がクリックされました", Toast.LENGTH_LONG).show();
					}
				}
			);
	
		// Button追加メソッド呼び出し
		this.addButton("ボタン02", 
				new View.OnClickListener() {
					public void onClick(View v) {
						// ボタンがクリックされたときに実行される処理
						Toast.makeText(MainActivity.this, "ボタン02がクリックされました", Toast.LENGTH_LONG).show();
					}
				}
			);
	}

コメント

タイトルとURLをコピーしました