개발 71

[JAVA] String.matches() vs String.contains()

알고리즘 문제를 풀다가 정규표현식 문제를 만났다. String.matches()를 사용해서 푸는 문제였는데 contains()와 무엇이 다를까? 둘다 공통점은 반환값이 특정 값이 문자열에 포함되어있으면 true 아니면 false를 반환한다는 점이다. String.matches() matches()는 인자로 정규표현식을 받는다. 만약에 인자로 정규표현식이 아닌 문자열이 온다면 '포함'이 아니라 '정확히' 일치해야 한다. public class MatchesTest{ public static void main(String[] args){ String str = "my java test"; //정규표현식 사용 안할때 정확히 일치해야 한다 System.out.println( str.matches("java") ..

개발/JAVA 2022.05.02

[JAVA] String.format을 이용한 문자열 형식 설정

프로그래머스 문제를 풀다가 String함수에 대한 것을 정리하고 익히기 위해 포스팅을 하기로 결심! String의 format 메서드는 문자열의 형식을 설정하는 메소드이다. 1. %d (10진수) 2. %s (문자열 형식) 3. %f (실수형 형식) 4. %t (날짜시간 형식) 5. %c (유니코드 문자 형식) 6. %o, %x(8진수, 16진수) 간단하게 10진수, 문자열, 실수형까지만 다뤄보겠다. 예시) 1. %d int i = 23; System.out.println(String.format("%d", i)); System.out.println(String.format("%5d", i)); System.out.println(String.format("%-5d", i)); System.out.prin..

개발/JAVA 2022.04.20

[안드로이드] Fragment위에 Fragment 올리기 (TabLayout & BottomNavigation)

이번 포스팅은 BottomNavigation 위에 프래그먼트를 올리고, 그 프래그먼트에 탭 레이아웃을 적용하여 또 프래그먼트를 올리는 것을 정리할 것이다. 우선 필요한 준비물은 BottomNavigationView이니 만들어보자. 1. activity_main.xml activity_main.xml에 BottomNavigationView와 탭레이아웃을 올릴 FrameLayout을 만들어준다. 2. menu_bottom_navi.xml 그리고 bottomNavigation에 들어갈 각각의 item을 만들어준다. 3. 각각 item에 대한 Fragment.kt 만들기 class MyPageFragment : BaseFragment(FragmentMyPageBinding::bind, R.layout.fragm..

개발/Android 2022.03.18

[안드로이드] Recyclerview footer 사용

안드로이드 Recyclerview footer 사용법에 관한 포스팅이다. Header도 마찬가지로 같은 방법을 적용하면 된다. 1. footer.xml 추가 2. Adapter에 Footer에 대한 처리 구현 getItemCount에 헤더,풋터 개수 포함 (지금 포스팅은 풋터만 해당되므로 +1만 해줌) getItemViewType에 position에 따른 타입 반환 추가 각 타입에 따른 ViewHolder class 추가 onCreateViewHolder에서 각 타입에 따른 ViewHolder Class 반환 추가 onBindViewHolder에 각 ViewHolder에 따른 처리 추가 package com.example.api_practice.src.main.today.now import android..

개발/Android 2022.03.15

[안드로이드] RecyclerView Drag & Drop 구현 (GridLayout)

그리드레이아웃을 가진 리사이클러뷰 드래그앤드롭을 구현하였는데, 까먹기 전에 정리하려고 한다. 필요한 준비물은 MyTouchHelperCallback 코틀린파일과 DragAndDropAdapter 구현해야한다. (당연히 RecyclerView는 다 구현이 되어있어야겠죠?) MyTouchHelperCallback.kt ItemTouchHelper를 사용하기 위해서 ItemTouchHelper.CallBack을 구현해야한다. import androidx.recyclerview.widget.ItemTouchHelper import androidx.recyclerview.widget.RecyclerView class MyTouchHelperCallback( private val itemMoveListener: O..

개발/Android 2022.02.27

[안드로이드] TabLayout + Fragment 사용하기

1. activity_main.xml에 TabLayout 추가 2. activity_main.xml 에 fragment 태그 추가하기 3. fragment.xml, Fragment.kt 만들기 4. MainActivity 탭 메소드, 프래그먼트 객체화해주기 1. activity_main.xml에 TabLayout 추가 2. activity_main.xml 에 fragment 태그 추가하기 태그안에 name을 꼭 지정해주어야한다. 3. fragment.xml, Fragment.kt 만들기 탭을 두개 만들었으니 xml과 코틀린 파일도 각각 두개 만들어야한다. 위에는 랭킹 xml 아래는 즐겨찾기 코틀린 파일. package com.example.rc_4.Fragment data class Shoppingmal..

개발/Android 2022.02.27

[안드로이드] 스크롤 시 체크박스 해제되는 문제 해결

RecyclerView를 사용하다보면 좋아요 등 체크박스가 들어가 있는 레이아웃을 볼 수 있는데, 스크롤을 하면 체크박스가 유지되지 않고 풀려버리거나 생뚱맞게 다른 체크박스가 눌려져있는 것을 확인할 수 있다. 이것을 또 까먹기 전에 정리하려 한다. 우선, 체크박스가 왜 갑자기 해제되냐? RecyclerView는 뷰 객체를 한번에 생성하는 것이 아니라 계속 재활용해서 사용하기 때문에 스크롤했다가 다시 돌아오면 새로 초기화되어서 보여주기 때문이다. 그렇다면 어떻게 해결하면 좋을지 차근차근 살펴보자! 순서 1. 데이터 클래스 추가 (체크한 객체에 대한 현재값 저장) 2. 데이터 리스트 생성 3. 어댑터 수정 1. 데이터 클래스 추가 (체크한 객체에 대한 현재값 저장) 따로 체크박스에 대한 클래스를 만들어준다...

개발/Android 2022.02.27

[안드로이드] RecyclerView 사용하기 ( + ViewBinding, Fragment)

이번 포스팅은 RecyclerView를 사용법을 정리해볼건데, 인터넷에 나와있는 방법은 ViewBinding을 사용한 코드는 별로 없는 것 같아서 정리해보고자 한다. 이번에도 지그재그 어플을 본따서 만들예정. 순서 1. activity_main.xml에 RecyclerView추가 2. item.xml 만들기 3. DataClass 생성 4. Adapter 생성 5. MainActivity에 Adapter와 RecyclerView를 연결하기 1. fragment_main.xml에 RecyclerView추가 지금 저 스크롤뷰는 무시해주시고,,, RecyclerView를 붙여줍니다. 2. item.xml 만들기 리사이클러뷰에 들어갈 아이템 레이아웃을 만들어줍니다. 3. DataClass 생성 데이터클래스를 만..

개발/Android 2022.02.27