안녕하세요.
제가 지금 하려고 하는게, RelativeLayout을 상속은 클래스 A를 만들고,
A클래스를 이미 만들어놓은 RelativeLayout으로 되어 있는, XML과 연결하려 하고,
XML내부에 있는 버튼들에 대한 이벤트 처리를 클래스에서 미리 다 해놓은 뒤에
필요할때마다 이 레이아웃을 addview해서 사용하여 이벤트 처리를 따로 하지 않게 하려고 합니다.
클래스 A는 RelativeLayout이니 this = (RelativeLayout)Inflate 이런식으로 해서 초기화를 하려 했는데,
이게 안되더라구요.
내부에 Layout변수를 하나 두고 여기에 인플레이트한 뒤에 나중에 addview할때 저 변수를 부르니 그게 되는데..
RelativeLayout을 상속받은 클래스 자체에는 안들어가는데 필드변수에 들어가는이유는 무엇인지 궁금하네요.
또한 이 문제에 대한 해결방안은 어떤게 있을지..
답변 부탁드립니다.
흠... 그런식으로 초기화하는 방법은 생각해 본적은 없지만 가능하려나... ㅋ
일단 상위 클래스를 S라고 하면 현재 A = S를 하시는건데... 상속관계쌍 S = A는 되도 A=S는 안됩니다... 현재 하위클래스 객체에 상위 클래스로 초기화하시는건데...(A = (RelativeLayout).....) A가 하위기 때문에 어떤 메서드가 추가되었을지 모르는데 상위를 넣을수는 없죠...
그리고 OnClickListener는 View클래스를 열어보시면 inner public interface로 구현되어 있습니다. View.OnClickListener로 implements하세요...
추가적으로 질문을 드리면 public class A extends RelativeLayout implements OnClickListener 에서
왜 OnClickListener 가 import가 안되는것일까요?