안드로이드 With Java #16 View Component를 동적으로 다루는 방법

Jake Seo·2020년 8월 10일
0

안드로이드 With Java

목록 보기
16/31

안드로이드 With Java #16 View Component를 동적으로 다루는 방법

View를 동적으로 다룬다는 것은?

내가 원하는 시점에 View의 내용을 바꿔주는 것을 말한다.

이전까지는 View의 내용을 한번 정하고 View의 내용이 변하는 일이 없었다.

View를 동적으로 다뤄보기 실습

방법

먼저, View에 id를 부여해주어야 한다.

아이디는 위와 같은 형식으로 @+id/아이디명 형식으로 부여해주면 된다.

id를 부여하면 findViewById() 메소드를 통해 java 코드에서 id를 부여한 컴포넌트를 가져올 수 있다.

findViewById() 메소드를 통해 뷰 컴포넌트를 가져오면 뷰 컴포넌트의 하위 메소드를 통하여 뷰를 동적으로 다루면 된다.

이미지 뷰 변경해보기

위의 소스코드는 ImageView = imageView;를 통해 이미지 뷰를 선언하고 findViewById() 메소드를 통해 R.id.imageView imageView아이디를 가진 뷰 컴포넌트를 가져왔다.

R 클래스란 안드로이드 개발 시에 사용되는 각각의 리소스를 관리하기 쉽게 만들어주는 역할을 하는 클래스이다. res 밑에 리소스 파일을 추가하면 해당 파일명으로 된 int형 변수가 R.java에 자동으로 추가된다. 자바 코드에서는 이를 변수로 리소스를 지칭할 수 있다.

R.id.id명으로 layout 내부의 id를 지칭할 수 있다. R.drawable.이미지명으로 drawable 내부의 이미지를 지칭할 수 있다. R.string.스트링명으로 strings 내부의 문자열을 지칭할 수 있다.

그리고 이후에 imageView의 내용을 drawable에 위치한 bubble이라는 이미지로 변경하였다.

결과는 다음과 같다.

이미지 변경 전 뷰 미리보기

앱 실행 결과 (이미지 변경됨)

이미지가 잘 변경된 것을 볼 수 있다.

텍스트 뷰 변경해보기

텍스트뷰는 위의 이미지 뷰 변경하기와 거의 동일한데 메소드만 setTextView()를 사용하면 된다.

이렇게 텍스트가 잘 바뀐 것을 확인할 수 있다.

java 코드에서 string에 저장된 값 가져오기

위와 같이 리소스의 strings.xml에 거품입니다라는 텍스트를 저장하고, java 파일에서 가져와보자.

가져올 때 코드는 위와 같이 작성하면 된다.

getApplicationContext().getResources().getString(R.string.id명);

결과가 잘 변경된 것을 확인할 수 있다.

String array에서 값 가져오고 토스트로 메세지 하나씩 띄워보기

리소스 중 strings 항목에는 문자열만 저장 가능한 것이 아니라 아래처럼 문자열 배열도 저장 가능하다.

위는 ['배','열','테','스','트']라는 문자열을 순차적으로 저장한 것이다. 이 문자열을 하나씩 가져와서 Toast로 띄워보자.

위와 같이 소스코드를 짜면 된다. context를 가져올 때는 이전에 배웠던 thisMainActivity.this 둘 중 어느것을 사용해도 무관하다.

.show() 메소드까지 사용하지 않으면 메세지가 뜨지 않음에 유의하자.

실행 결과

위와 같이 Toast 메세지가 순차적으로 잘 출력된다.

추가

텍스트 이미지의 내용 뿐만 아니라 뷰에서는 아주 많은 속성들을 가지고 있다. 크기 등 아주 많은 것을 동적으로 설정할 수 있으니 필요할 때마다 찾아서 잘 써보자.

profile
풀스택 웹개발자로 일하고 있는 Jake Seo입니다. 주로 Jake Seo라는 닉네임을 많이 씁니다. 프론트엔드: Javascript, React 백엔드: Spring Framework에 관심이 있습니다.

0개의 댓글