본문 바로가기

Programming/Xamarin

Xamarin Forms Android Activity passing value. axml file passing value

반응형

Xamarin Forms의 Android 프로젝트에 Resources/layout 경로에는 axml file들이 존재한다.

아래에 예시로 TextView가 하나 있다. 이 TextView의 id는 timeTextView이고 auto generate 되는 Resource.designer.cs 파일에서 확인 가능하다.

axml file의 TextView

 

다시 Android 프로젝트에서 Activity 로 이동하여 OnCreate함수 내에서 다음과 같이 resource id를 사용해 TextView를 가져왔다. 그리고 Text를 원하는 값으로 set 해준다.

Activity의 OnCreate()

 

처음엔 데이터바인딩을 생각했었지만 동작하는 방식을 생각해보면 데이터바인딩은 아니고 그냥 밖에서 원하는 컨트롤을 찾은 뒤 원하는 프로퍼티에 직접 값을 넣어주는 방식이다.

 

만일 FindViewById로 컨트롤을 가져오는데 실패한다면(resource id가 존재함에도)

아마도 해당작업을 하는 위치가 MainActivity가 아니고 별도로 만든 Activity일 수 있다.

그럴 땐 아래와 같이 SetContentView를 해준 뒤 위 작업을 진행한다.

FindViewById를 하려면 ContentView가 있어야 하기 때문이다.

반응형