안드로이드 스튜디오/JAVA 자바
-
[안드로이드] 람다식안드로이드 스튜디오/JAVA 자바 2024. 1. 7. 01:36
람다식 안드로이드에서 람다식(Lambda Expressions)은 Java 8 이후부터 지원되는 기능입니다. 람다식은 간결한 방식으로 인터페이스의 익명 구현을 제공합니다. 이는 주로 리스너(listener)나 콜백(callback)과 같은 단일 메소드 인터페이스에서 유용하게 사용됩니다. 리스너(listener)를 사용할 경우, 예시를 살펴보겠습니다. 람다식 예제 예를 들어, 안드로이드에서 버튼 클릭 리스너를 설정할 때, 전통적인 익명 클래스 방식 대신 람다식을 사용할 수 있습니다. 연구라는 버튼을 클릭하면, getCateDuties(2) 함수를 동작합니다. 이어서 생활이라는 버튼을 클릭 시에는 getCateDuties(3) 함수를 동작합니다. getCateDuties() 함수는 별도로 구성했습니다. 주의..
-
[android] toolbar 뒤로가기안드로이드 스튜디오/JAVA 자바 2024. 1. 2. 17:43
안드로이드에서 'Toolbar'는 애플리케이션 상단에 위치하며, 사용자 인터페이스의 중요한 구성 요소입니다. 이 글은 안드로이드 Toolbar에 대해 처음 접하거나, 아직 사용해보지 않은 분들을 위해 기술적인 설명을 담아 봤습니다. Toolbar는 전통적인 타이틀 바를 대체하는 요소로, Android 5.0 (API 레벨 21) 이상부터 사용할 수 있습니다. 이는 애플리케이션의 이름, 네비게이션 아이콘, 메뉴 항목 등을 표시하는 데 사용됩니다. Toolbar의 가장 큰 장점은 매우 유연하다는 것입니다. 개발자는 Toolbar를 통해 애플리케이션의 상단을 자유롭게 커스터마이징할 수 있습니다. 안드로이드의 AppBar와 결이 비슷합니다. Toolbar를 사용하기 위해서는 먼저 XML 레이아웃 파일에 Tool..
-
[안드로이드] ExtendedFloatingActionButton안드로이드 스튜디오/JAVA 자바 2023. 12. 25. 22:01
확장된 플로팅 액션 버튼. 화면에 붙어있는 게 아닌, 레이아웃 앞에 떠있는 형태라고 볼 수 있습니다. 그래야 레이아웃 뒷편의 RecyclerView를 스크롤 시에, 독립적으로 움직일 수 있습니다. 다른 방법을 사용해도 되지만, 그나마 가장 깔끔한(?) 방법이라고 생각했습니다. 레이아웃 앞에 떠 있는 형태는 일종에 영상편집을 하면서 자막과 같은 형태로 생각됩니다. 요런 식으로 레이아웃에 추가합니다. 레이아웃 xml 코드는 위와 같습니다. 너무 아래에 붙지 않게, layout_marginBottom을 20dp를 주었는데, 차라리 전체 layout_margin을 주는 게 더 깔끔해보일 수 있습니다. 다만 너무 margin을 주면 차라리 FloatingActionButton을 사용하는 게 나은 건가 싶은 생각이..
-
[안드로이드] Bottom Navigation을 활용한 Activity 전환안드로이드 스튜디오/JAVA 자바 2023. 12. 23. 23:36
오늘은 Bottom Navigation을 활용해서 Activity를 전환하는 방법을 정리하고자 합니다. 1. Menu 만들기 안드로이드 res/menu/bottom_navigation_menu.xml 로 만들고 menu에 나타낼 item의 항목을 정리해줍니다. 2. MainActivity 클래스 Bottom Navigation을 코드에 추가해줍니다. setOnNavigationItemSelectedListener 부분이 depecreated되어지기 때문에 다른 선택을 추천하지만, 아직 대안이 없어서 선택했습니다. Intent로 Activity를 전환하여 해당 페이지를 전환시킬 수 있습니다. 3. 레이아웃 xml 코드 수정 BottomNavigationView를 추가해줍니다. 4. 레이아웃 화면 확인 실제..
-
[안드로이드] 리사이클러뷰 어댑터에서 액티비티로 인텐트안드로이드 스튜디오/JAVA 자바 2023. 5. 17. 11:12
리사이클러뷰 어댑터에서 액티비티로 데이터를 보내는데 인텐트를 활용해서 데이터를 보내는 방법입니다. 현재 안드로이드 1대1 채팅 기능을 구현하고 있습니다. 채팅방 목록을 DB에서 불러오는데, 리사이클러뷰의 어댑터 클래스를 활용해서 불러오고 있습니다. 어댑터의 onBindViewHolder 에서 포지션 값에 따라 다른 값을 불러와야 하는데, 그 값을 클릭하면, 해당 값에 해당하는 데이터를 불러와서 새로운 ClientActivity 클래스에 선택한 값이 나타나도록 해야합니다. setOnclickListener 부분을 살펴보면, 해당 부분은 아래와 같습니다. `Intent intent = new Intent(view.getContext(), ClientActivity.class);`: `Intent` 객체를 생..
-
채팅 시스템 개요안드로이드 스튜디오/JAVA 자바 2023. 5. 3. 10:09
채팅 시스템 과정 가볍게 살펴보기 1. 인텔리제이의 서버 실행시키기 - 서버소켓을 실행하여 클라이언트 접속 대기 2. 안드로이드 클라이언트 실행 - 안드로이드 클라이언트 실행 시, 해당 클라이언트마다 소켓 생성. -> Thread 처리. 3. 채팅방 클래스 - 채팅에 접속하는 인원들을 채팅방 나누기 - 채팅방은 ArrayList로, 채팅방 참여자는 HashMap 로 구별하여 데이터 저장. - 접속하는 인원들을 구별하여 채팅방 접속자 구별하기 / 해당 채팅방에 접속한 클라이언트만을 대상으로 브로드캐스트 4. 데이터베이스 설계 - 가장 애매한 부분 - 채팅방 테이블 생성 - 채팅방 참여자 테이블 생성 - 채팅 메시지 테이블 생성 5. AWS EC2의 Mysql 데이터베이스를 연동 - 인텔리제이 JDBC 라..
-
AWS EC2의 Mysql과 인텔리제이 JDBC 라이브러리안드로이드 스튜디오/JAVA 자바 2023. 5. 2. 13:56
순서의 중요도보다 해당 위치에 놓여야할 것이 놓여야하는 점이 포인트. 우선 프로젝트 파일의 구성을 살펴봐야합니다. 위의 사진에서 차이점은 External Libraries의 mysql.connector.java 를 추가해야합니다. 기본적인 순서는 다음과 같습니다. 해당 버전은 8.0 이상으로 통일하되, mysql connector/j 혹은 해당 project module 에서 다운로드하여 설치 가능합니다. 아래는 예시 코드입니다. try-catch 문의 예외처리를 제외하고 try 부분을 보면. JDBC 예시 파일 아래와 같이 구성되는데 1번의 드라이버 로딩은 "com.mysql.cj.jdbc.Driver"부분이며 이는 기존의 "com.mysql.jdbc.Driver"에서 버전이 업그레이드 됨에 따라 "c..
-
[자바] 생성자의 개념과 생성자를 사용하는 이유안드로이드 스튜디오/JAVA 자바 2022. 10. 3. 22:29
생성자에 대한 개념을 정리하고자 합니다. 생성자는 기본으로 생성되는 기본 생성자가 있으며, 생성자를 선언하지 않을 경우, 이 생성자가 사용될 수 있습니다. 우리가 생성자를 사용하는 이유는 생성자를 통해 코드를 간결하고 쉽게 표현할 수 있기 때문입니다. Date date = new Date(); 을 통해 date를 선언한 수 있으며, 이는 new Date()까지 와야 선언이 끝납니다. 이걸 초기화라고 할 수 있습니다. 인스턴스의 초기화가 되는 것인데요. 클래스를 클래스 안에 선언함으로써 인스턴스화라고 볼 수 있습니다. 아직까지도 이 인스턴스화와 초기화, 객체 생성, 변수 등의 개념들이 헷갈리지만 점차 정리되고 있는 느낌입니다. (???) 다시 생성자로 돌아가서 생성자는 기존 클래스의 이름과 동일해야하며, ..