Android開発備忘録「日本語でおk」

自分が勉強した事を、忘れないようにメモする備忘録です。決して「他人様にお教えする」などというおこがましいものではありません。いつまでたっても覚えない自分の為のチラ裏ブログ

ボタンをつくる -2/2- (クラスを分けて実装編)


今回の学習も「Androidの館」様のサイトの解説を元に勉強させてもらいます。
1回目はこちら

前回はActivityに直接実装していましたが、今回は専用のクラスに分離して実装するようです。
構成は、

・SampleActivity クラス(メインのクラス)
・ButtonClickListener クラス(onClickを実装するクラス)


■SampleActivity class

public class SampleActivity extends Activity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        Button btn = (Button)findViewById(R.id.sampleButton);
        btn.setOnClickListener( new ButtonClickListener(this) );
    }
}

↑「onClick」メソッドは自作クラス(ButtonClickListener)内にあるので
「ButtonClickListener」のインスタンスを代入(引数は、Activity自身である「this」)


■ButtonClickListener class

public class ButtonClickListener implements OnClickListener{

    private Context context;

    // コンストラクタ
    ButtonClickListener(Context c){
        context = c;
    }

    public void onClick(View v) {
        Toast.makeText(
                context.getApplicationContext(),
                "ボタンが押されました",
                Toast.LENGTH_LONG).show();
    }

}

↑「OnClickListener」のインプリメント
実装されるクラスで行う
←呼び出し時の引数「this」を受け取っている
←第1引数にはコンテキストを指定
コンストラクタが受け取った「this」(の内容が格納された「context」)
のgetApplicationContext()メソッドを使う