●android.widget.Button



■ボタンの文字を変更する


android.widget.Button b=(android.widget.Button)findViewById(R.id.button);
b.setText("test");

(android.widget.Button)findViewById(R.id.button).setText("test");
これでも動作するはずなのだが、エラーが出て動かなかった。


■文字の色を変更する


android.widget.Button b=(android.widget.Button)findViewById(R.id.button);
b.setTextColor(android.graphics.Color.parseColor("#FF0000"));



■ボタンの色を変更する


android.widget.Button b=(android.widget.Button)findViewById(R.id.button);
b.setBackgroundColor(android.graphics.Color.parseColor("#F2D8DF"));



■ボタンを表示・非表示にする


android.widget.Button button = (android.widget.Button) findViewById(R.id.button);
if (android.widget.Button.VISIBLE == button.getVisibility()){
	//もし見えたら、見えなくする
	button.setVisibility(android.widget.Button.INVISIBLE);
}else {
	//見えなかったら、見えるようにする
	button.setVisibility(android.widget.Button.VISIBLE);
}



■ボタンを有効・無効にする


android.widget.Button button = (android.widget.Button) findViewById(R.id.button2);
if (true == button.isEnabled()){
    //有効なら無効化する
    button.setEnabled(false);
}else {
    //無効なら有効化する
    button.setEnabled(true);
}



■動的にボタンを張り付ける


android.widget. Button b=new android.widget.Button(this);
b.setText("test");
setContentView(b);

画面いっぱいにボタンが表示されます、レイアウトマネージャを使った方がいいですね。



■ボタンが押された時の動作を記述する


@Override
protected void onCreate(Bundle savedInstanceState) {

	・・・・

	インナークラスをボタンに登録する

	android.widget.Button button=(android.widget.Button)findViewById(R.id.button);
	button.setOnClickListener(new button_listener());

}


インナークラスを作成して動作を記述する

	private class button_listener implements android.view.View.OnClickListener {
		public void onClick(android.view.View view) {

			//画面にメッセージを表示する
			android.content.Context context = getApplicationContext();
			android.widget.Toast t=android.widget.Toast.makeText(context, "ボタンが押されました", android.widget.Toast.LENGTH_LONG);
			t.show();

		}
	}


▼もっと短く動作を記述する


android.widget.Button button;
button=(android.widget.Button)findViewById(R.id.button);

button.setOnClickListener(new android.view.View.OnClickListener() {
            public void onClick(android.view.View view) {


            }
        });


無名クラスを使うことでもっと短く書く事ができます。
でも、もっともっと短く書くとこうなるでしょうか?


((android.widget.Button)findViewById(R.id.button))
        .setOnClickListener(new android.view.View.OnClickListener() {
            public void onClick(android.view.View view) {


            }
        });

まあ、ただ単に短縮しただけですが。


▲トップページ > android