반응형

# 1. Language 56

[Android/XML] TextView와 EditText의 높이를 똑같이 맞추고 싶을 때

☕ 문제 왼쪽은 TextView 오른쪽은 EditText로 만든 모양이다. 저 둘을 나란히 두고 싶으나.. 거슬리는 저 높낮이 차이는 뭐지? height속성을 준 것이 없는데..! 위 사진의 XML파일 ☕ 해결 간단히 아래의 속성으로 해결할 수 있다. android:baselineAligned="false" 해당 속성을 TextView와 EditText의 부모요소의 속성으로 집어넣으면 된다.

[Kotlin] 코틀린 파일 모양 다른 이유?

🎈 발단 Kotlin을 사용하여 앱을 만들고 있는 도중, 정신차려보니 아래와 같이 코틀린 파일의 모양이 다른 것을 발견했다. 모양뿐만 아니라 파일명 끝에 .kt 확장자가 붙어있고 없고의 차이마저 있었다. 보통의 경우 이와 같은 모양의 코틀린 파일이 생성된다. 이 코틀린 파일 모양은 대체 뭐지~? 라 생각하며 당황스러운 마음에 구글링부터 했는데 만족스러운 결과는 나오지 않았다. 그러던중 총 2가지의 경우로 인해 위와 같이 코틀린 파일의 모양이 다른 것을 알 수 있었다. 🎈 경우 1 코틀린 파일 내부의 코드가 전부 주석처리가 되어있는 경우 간단히 내부의 주석 처리를 풀어주면 보통의 코틀린 파일 모양 으로 변경된다. 🎈 경우 2 코틀린 파일 내부에 적힌 class명과 코틀린 파일 자체의 이름이 다른 경우 코틀..

[Kotlin] Kotlin에서의 object 객체 표현식

🎈 객체 표현식 및 선언 때로는 새 하위 클래스를 명시적으로 선언하지 않고 일부 클래스를 약간 수정한 개체를 만들어야 하는 경우가 있습니다. Kotlin은 이를 객체 표현식(Object expressions)과 객체 선언(object declarations)으로 처리할 수 있습니다. 객체 표현 객체 표현식(Object expressions)은 익명 클래스, 즉 클래스 선언으로 명시적으로 선언되지 않은 클래스의 개체를 만듭니다. 이러한 클래스는 일회성으로 유용합니다. 처음부터 정의하거나 기존 클래스에서 상속하거나 인터페이스를 구현할 수 있습니다. 익명 클래스의 인스턴스는 이름이 아닌 식으로 정의되기 때문에 익명 개체(anonymous objects)라고도 합니다. 슈퍼타입에서 익명 객체 상속하기 일부 유형..

[Android/Kotlin] VideoView 풀 스크린 만들기 & 앱 상단 어플 이름 없애기

VideoView 풀 스크린 만들기 우선, 영상을 재생시키면 가로방향으로 영상을 재생시키는 기능은 아래 코드로 구현이 가능하다. AndroidManifest.xml 근데 아래 결과물과 같이 오른쪽에 여백이 남은 채로 영상이 재생된다. 해결방법 아주 어이없게도 비디오를 재생시킬 때 보여주는 xml파일의 최상단 레이아웃을 ConstraintLayout으로 바꿔주면 된다. RelativeLayout과 LinearLayout에서 full-screen이 안되는 이유는 잘 모르겠다.. 결과물 앱 상단 어플 이름 없애기 Youtube 처럼 꾸민 내 어플 상단에 보라색으로 내 어플이름이 나오는게 보기가 안좋아 삭제하기로 했다. 해결방법 values파일의 themes.xml에 아래 코드를 추가시키면 바로 없앨 수 있다...

Webview를 사용해 웹페이지 로드하는 방법

방법 1 Webview를 사용해서 웹페이지를 로드하는 방법 url을 띄울 수 있는 여러가지 옵션 중 내가 만든 앱은 보이지 않는다 즉, Crome과 같은 다른 어플리케이션을 사용해야 하며 내가 만든 어플 위에 해당 어플이 켜지며 웹페이지가 오픈된다 방법2 Intent를 사용해서 webview에 웹페이지를 로드하는 방법 url을 띄울 수 있는 여러가지 옵션 중 내가 만든 앱도 보인다 즉, 내가 만든 앱 안에서 웹페이지가 오픈된다 방법 1 & 2 공통으로 세팅되어야 하는 것 Android 어플리케이션에서 인터넷 접속을 할 수 있도록 설정해주려면 Manifest.xml에 아래 코드가 기재되어 있어야 한다. 또한 두개 모두 공통적으로 아래의 xml을 사용해보자 activity_review.xml 방법 1 cla..

Android개발 시 데이터 바인딩이란?

데이터 바인딩이란? 레이아웃와 데이터를 결합해주는 라이브러리 프로그램 방식이 아니라 선언적 형식으로 결합할 수 있게 도와줌 안드로이드에서 공식적으로 지원하는 라이브러리 아래와 같이 레이아웃 파일에서 직접 View에 텍스트 할당 데이터 바인딩 장점 레이아웃과 데이터를 연결하기 위해 필요한 코드를 최소화 시킬 수 있음 findViewId() 를 호출하지 않아도, 자동으로 xml 에 있는 VIew 들을 만들어준다. RecyclerView 에 각각의 item 을 set 해주는 작업도 자동으로 진행된다. data 가 바뀌면 자동으로 View 를 변경하게 할 수 있다. xml 리소스만 보고도 View 에 어떤 데이터가 들어가는지 파악이 가능하다. 코드 가독성이 좋아지고, 상대적으로 코드량이 줄어든다. 데이터 바인딩..

[Android/Kotlin] 블루투스 목록 PJT -1. 데이터 바인딩하여 버튼 클릭 시 Toast메세지 출력하기

선행작업 XML에 간단한 버튼만 만들어 주었다. Step1. 데이터 바인딩 진행 1. app/build.gradle에 dataBinding 요소 추가 android { ... dataBinding{ enabled = true } } 2. dataBinding 사용하려는 XML파일의 소스를 태그로 감싸주기 주의할 점 : xml 버전과 인코딩 타입을 명시한 태그가 항상 제일 먼저 와야한다 이제 각 레이아웃 파일에 대해 binding class가 자동으로 생성이 되는데, 이 때 이름은 data binding을 사용하는 클래스의 이름에 따라 생성된다. 예) 자동으로 생성되는 activity_main.xml의 binding class의 이름 : ActivityMainBinding 3. Activity로 이동하여 ..

Kotlin # Companion Object

Companion Object(동반자 객체) Java나 C#과는 달리, 코틀린에는 static 멤버 변수나 함수가 없다. 만약 클래스 인스턴스없이 어떤 클래스 내부에 접근하고 싶다면, 클래스 내부에 객체를 선언할 때 companion식별자를 붙인 object를 선언하면 된다. companion object를 선언하면 클래스 이름을 식별자로 사용함으로써 Java나 C#에서 static 메소드를 호출했던 것과 같이 해당 객체를 사용할 수 있다. companion object는 어떤 클래스의 모든 인스턴스가 공유하는 객체를 만들고 싶을 때 사용하며, 클래스당 한 개만 가질 수 있다. class MyClass { companion object Shop { fun create(): MyClass = Myclass..

Kotlin # Android 전체에서 context에 접근할 수 있도록 만들기

Android에서는 drawable.xml나 string.xml의 리소스를 가지고 오려면 반드시 context를 거쳐야만 해당 리소스들을 가져올 수 있는 귀찮은 점이 있다. 이는 MVVM패턴 속에 context를 인자로 넘겨주지 않기 때문이다. 따라서 매번 context를 가져오기 귀찮으니, Application에서 context를 가져올 수 있도록 구현해두고 필요할 때 마다 context에 접근할 수 있도록 만들자. 즉, 앱 전체에서 사용할 수 있는 context를 만들어주는 것이다. ※ 참고 Context에 접근하여 String을 가져온다 == values파일의 strings.xml에 쓰여진 name을 가져온다 그런데 여기서 name값은 내부적으로 int값으로 인식되기 때문에 int형으로 받아와 st..

Kotlin # Context

🎈 Context Context - 앱의 흐름 Application Context - 하나만 존재 - 앱 전반에 걸친 정보와 환경 - Application lifecycle에 영향을 받음 Activity Context - Activity마다 존재 - Activity lifecyce에 영향을 받음 - Context를 구현하고 기능을 추가한게 Activity 책(Application Context) Chapter1(Activity Context) chapter1-1 chapter1-2 Chapter2(Activity Context) chapter2-1 Chapter3(Activity Context) chapter3-1 chapter3-2 chapter3-3

반응형