반응형
Xamarin Forms의 Android 프로젝트에 Resources/layout 경로에는 axml file들이 존재한다.
아래에 예시로 TextView가 하나 있다. 이 TextView의 id는 timeTextView이고 auto generate 되는 Resource.designer.cs 파일에서 확인 가능하다.
다시 Android 프로젝트에서 Activity 로 이동하여 OnCreate함수 내에서 다음과 같이 resource id를 사용해 TextView를 가져왔다. 그리고 Text를 원하는 값으로 set 해준다.
처음엔 데이터바인딩을 생각했었지만 동작하는 방식을 생각해보면 데이터바인딩은 아니고 그냥 밖에서 원하는 컨트롤을 찾은 뒤 원하는 프로퍼티에 직접 값을 넣어주는 방식이다.
만일 FindViewById로 컨트롤을 가져오는데 실패한다면(resource id가 존재함에도)
아마도 해당작업을 하는 위치가 MainActivity가 아니고 별도로 만든 Activity일 수 있다.
그럴 땐 아래와 같이 SetContentView를 해준 뒤 위 작업을 진행한다.
FindViewById를 하려면 ContentView가 있어야 하기 때문이다.
반응형