javaでAndroid開発に挑戦してる学生です。 ToggleButton toggle = findViewById(R.id.toggle);
javaでAndroid開発に挑戦してる学生です。 ToggleButton toggle = findViewById(R.id.toggle); toggle.setOnCheckedChangeListener(new OnCheckeCompound.ButtondChangeListener() { public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) { Toast.makeText(MainActivity.this, isChecked ? "メール送信をオン" : "メール送信をオフ", Toast.LENGTH_SHORT).show(); } }); という構文をみたのですが、2行目のnewの あとのOnCheckeCompound.ButtondChangeListener()について質問です。 匿名クラスを定義してると思うのですが . をつかってクラスを定義できるのでしょうか? それともこれは、OnCheckeCompoundパッケージのButtondChangeListenerクラス という意味なのでしょうか。 調べてもよくわからなかったので 教えていただけると嬉しいです。 お願いいたします
ベストアンサー
クラスやインターフェースは、ネストさせて定義することができます。 /** インターフェースA */ interface Aaaa { ㅤㅤpublic void aaaa(); } class Outer { ㅤㅤ/** インターフェースB */ ㅤㅤinterface Bbbb { ㅤㅤㅤㅤpublic void bbbb(); ㅤㅤ} } // Aを実装した匿名クラス Aaaa aaaa = new Aaaa() { ㅤㅤpublic void aaaa() { ㅤㅤ} }; // Bを実装した匿名クラス Outer.Bbbb bbbb = new Outer.Bbbb() { ㅤㅤpublic void bbbb() { ㅤㅤ} }; 「CompoundButton.OnCheckedChangeListener」であれば、CompoundButton クラスにある OnCheckedChangeListener インターフェースのことを指します、
質問者からのお礼コメント
教えて下さりありがとうございました! とてもわかりやすく為になりました この知識を活かして勉強頑張りたいと おもいます^_^ 本当にありがとうございました
お礼日時:6/17 10:35