2014-07-13 2 views
0

ActivityfindViewById을 호출 할 수 있습니다. 이제는 두 경우 모두 호출해야합니다. 형식 검사 또는 null 검사를 피하고 둘 중 하나를 사용하고 싶지만 매개 변수를 전달할 때 매개 변수를 한 형식으로 변환하려고합니다.액티비티 및 뷰에 대한 findViewById의 수퍼 유형

일반적인 인터페이스 인 findViewById이 있나요? 소스 코드에서는 수퍼 클래스 또는 인터페이스에 연결하지 않고 두 가지 모두에 대해 구현 한 것처럼 보입니다.

+2

아니요, 공통 인터페이스가 없습니다. 그리고 당신이 필요로하는 어떤 이유라도 생각할 수 없습니다. 너 정확히 뭘 하려구? 또한 null 검사의 필요성을 방지하지 못하는 경우도 있습니다. –

+0

@GabeSechan 예, 좋은 지적입니다. 글쎄 조각을 사용하여 조각뿐만 아니라 활동에 내용을 표시합니다. 동일한 레이아웃을 재사용합니다. 각각의 경우에 조각보기 나 활동을 사용하여 요소를 찾아야합니다. 하지만 제 3의 방법이 있다고 생각합니다. 그냥 화이트 보드로 돌아 가야합니다. – Mahoni

답변

0

대신 Activity에서 할 수있는 것은 장식보기입니다. 여기에서 findViewById으로 전화합니다. Activity에서

public void myMethodRequiringView(View view) { 
    view.findViewById(...); 
} 

:

myMethodRequiringView(getWindow().getDecorView()); 

Fragment에서 :

myMethodRequiringView(rootView); 

당신이 ActvityWindow 안드로이드 클래스의 소스를 보면, 당신은이 호출 정확히 무엇을 볼 것이다 Actviity.findViewById.

관련 문제