Coding
-
[안드로이드 - 코틀린] 옵션 메뉴 아이콘 showAsAction 속성Coding/Android 2019. 7. 31. 13:19
안드로이드 스튜디오에서 메뉴 아이템을 만들다보면, 해당 메뉴 아이템의 아이콘을 노출시키는 showAsAction 속성을 통하여 어떻게 아이콘을 노출시킬지를 선택할 수 있다. 속성의 깃발 모양을 클릭하면 이렇게 5가지를 선택할 수 있는데, 각각의 설정 값은 다음과 같다. - never : 밖으로 절대 노출 X - ifRoom : 툴바에 여유가 있다면 노출 - always : 항상 노출 - withText : 글자와 아이콘을 함께 표시 - collapseActionView : 액션 뷰와 결합 시 축소되는 메뉴 만들기
-
[안드로이드] EditText의 Enter 키 아이콘 활성하기Coding/Android 2019. 7. 1. 21:50
대부분의 검색 포털이나 브라우저, 혹은 그냥 단순한 text 수정창에 입력하려고 키를 올리면 키보드에 동그라미친 돋보기 모양 아이콘이 활성화 되어 있습니다. 이는 기본 속성이 아니며, EditText의 속성값을 변경해 주어야 돋보기 모양 아이콘으로 변경됩니다. EditText의 Design 탭에서, 우측에서 Open All Attributes를 클릭하면 사용 가능한 속성들이 쭉 나오게 됩니다. 이중 접혀있는 imeOptions를 클릭하여 열면 actionSearch라는 속성이 있고(Default는 False입니다) 이를 체크해서 True로 바꿔주면 위의 그림처럼 키보드에 검색 아이콘이 뜨게 됩니다
-
[안드로이드] 코틀린 기본 문법 -8 (클래스 상속)Coding/Android 2019. 7. 1. 21:26
기본적으로 Java에서는 클래스상속을 extends라는 키워드를 통해 손쉽게 할 수 있었습니다. 하지만 Kotlin에서의 클래스는 기본적으로 상속이 금지됩니다. 상속이 가능하게 하려면 open 키워드를 클래스 선언 앞에 추가해줘야 합니다. class Monster { // 이 클래스는 상속받을 수 없음 } open class Animal { // 상속받을 수 있음 } class Dog : Animal() {// Animal을 상속받는 Dog 클래스 }
-
[안드로이드 - 코틀린] removeAllViews - 모든 뷰 제거하기Coding/Android 2019. 6. 29. 13:16
한 LinearLayout이 있다고 가정해봅시다. 그 안에는 버튼과 텍스트뷰 등등이 들어있습니다. 만약에 동적으로 이 버튼과 텍스트뷰를 모두 없애 화면을 깨끗하게 만들어야 할 경우가 있을 수 있습니다. 그럴 때 사용하는 것이 removeAllViews() 메소드입니다. myLinearLayout.removeAllViews() 이러면 myLinearLayout에 있는 모든 View들이 사라지게 될 것입니다.
-
[안드로이드 - 코틀린] 동적으로 텍스트뷰 추가하기Coding/Android 2019. 6. 29. 13:10
기존에 레이아웃에서 텍스트뷰를 미리 추가해놓을 수도 있지만, 이벤트가 진행되면서 동적으로 텍스트뷰를 추가해야 할 경우가 생길 수 있습니다. Java에서는 Toast라는 기능을 사용하였으나 Kotlin에서는 보다 간편하게 텍스트뷰를 추가할 수 있습니다. LinearLayout은 수직으로 자식 뷰를 추가하는 특성을 갖고 있기 때문에 이를 활용하여 동적으로 텍스트뷰를 추가하는 코드는 다음과 같습니다. val textView = TextView(this) textView.text = "글자" myLinearLayout.addView(textView) 이렇게 addView 메소드를 이용하여 동적으로 텍스트뷰를 추가할 수 있습니다.
-
[안드로이드 - 코틀린] Timer 사용 방법Coding/Android 2019. 6. 27. 20:44
Kotlin에서는 일정한 시간을 주기로 반복하는 동작을 수행할 때는 timer 기능을 사용합니다. 안드로이드에서는 메인 UI를 조작하는 메인 스레드와 보이지 않는 곳에서 작업을 처리하는 워커 스레드가 존재합니다. timer 기능은 워커 스레드에서 동작하는 코드입니다. timer(period = 1000) // 1000 밀리초마다 수행 { // 워커쓰레드 작성 } 중요한 점은 워커 스레드에서는 UI를 조작할 수 없다는 것입니다. 만약 timer 기능 안에 작업한 쓰레드 안에 setText() 등등의 메인UI를 조작하는 기능을 넣는다면 컴파일 오류가 발생할 것입니다. 만약 워커 스레드에서 UI를 조작하고 싶다면 runOnUiThread() 메소드를 사용해야 합니다. timer(peroid = 1000) { ..
-
[안드로이드] 레이아웃 수직/수평 n% 위치에 배치하기Coding/Android 2019. 6. 27. 20:21
레이아웃을 구성하다보면 TextView나 ImageView를 위에서 몇%지점, 혹은 왼쪽에서 몇%지점 이런 식으로 배치하고 싶을 때가 있습니다. 보통 좌우/상하 여백을 남길때는 margin을 자주 이용하지만 정확하게 몇 %에 배치할 수 있다면 레이아웃을 구성하기 더욱 쉬울 것입니다. 레이아웃에서 Design 탭으로 들어가면 이렇게 Preview를 볼 수 있습니다. 이제 오른쪽의 Attribute 탭에서 다양한 옵션을 작성할 수 있는데, 여기서 레이아웃 뷰를 배치할 수 있습니다. 우선 맨 처음 텍스트뷰를 정중앙에 배치했기 때문에 저 스크롤바가 50수치에 가있는것을 볼수 있습니다. 이를 조정하면 각각 몇%지점에 배치할지를 정할 수 있습니다. 왼쪽이 수직 / 아래 스크롤바가 수평으로 몇 퍼센트 위치에 배치할 ..