728x90

분류 전체보기 119

SharedPreferences

1. Preference란?프로그램의 설정 정보를 영구적으로 저장하는 용도로 사용XML 포맷의 텍스트 파일에 Key-Value 세트로 정보를 저장SharedPreferences 클래스 preferences의 데이터(key-value)를 관리하는 클래스응용 프로그램 내의 액티비티 간에 공유하며, 한쪽 액티비티에서 수정 시 다른 액티비티에서도 수정된 값을 읽을 수 있다.응용 프로그램의 고유한 정보이므로 외부에서는 읽을 수 없다. 2. 공유 환경설정의 핸들 가져오기getSharedPreferences(name,mode)여러개의 Shared Preference 파일들을 사용하는 경우name: 프레퍼런스 데이터를 저장할 xml 파일의 이름이다.mode: 파일의 공유 모드- MODE_PRIVATE:생성된 XML 파..

TIL/심화til 2024.04.30

ListAdapter

이번 챌린지반 과제로 리스트 어댑터를 이용하여 이미지검색을 구현하는 과제가있었는데 그전에 개념을 잘 몰랐기때문에 https://www.youtube.com/watch?v=zNGVicOZ2ew&t=662s 해당 영상을 보고 리스트뷰에대해 공부하게되었고, 예제도 따라했다. 영상을보고 내가 정리한 개념은 다음과 같다. DiffUtil - 두개의 데이터 셋을 받아서 그 차이를 계산해주는 클래스이다. 두 데이터 셋을 비교해서 변한부분만 파악해서 리싸이클러뷰에 반영한다. DiffUtil을 사용하기 위해선 diffutilcallback 을 상속받아서 -areItemsTheSame(): 두 객체가 동일한지 -areContentsTheSame(): 두 아이템의 내용이 동일한 데이터를 가지는지 확인 위 2개의 메서드를 사..

프로그래머스 lv2 시소짝꿍

해당 문제를 보고 아래와 같이 코드를 짰다. 하지만 제출 시 시간초과로 계속 실패했다. 그래서 원인이 뭔지 블로그를 검색하다 나와 비슷하게 코드를 작성하신 분이 계셨다. https://everyday-develop-myself.tistory.com/96 시소 짝궁 - Kotlin https://school.programmers.co.kr/learn/courses/30/lessons/152996#qna 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 everyday-develop-myself.tistory.com 이분과 나의 공통점은 문제를 시간복잡도 O(N²)로 풀었다는 것이다. 하지만 실패 이후에 " 브루트 포스를 ..

프로그래머스 lv2 멀쩡한 사각형

해당 문제를 보고 대각선을 그었을때, 전체 사각형의 갯수에서 없어지는 사각형의 갯수를 빼면 정답이 되었기때문에 그부분을 캐치하고 바로 문제를 풀었다. 먼저 전체 사각형의 갯수는 w*h 이다 그리고 " w+h - w와 h의 최대공약수 " 이렇게 해주면 대각선에 따라 자르면서 생기는 비정사각형의 수를 나타낼 수 있다. 결론적으로 코드는 아래와 같이 짰다.

챌린지반과제 week5

이번주 챌린지반 과제는 Kakao API 이용 하여 이미지 검색 혹은 비디오 검색을 구현하는것이고 Bookmark 부분은 viewPager 와 tablayout만 붙이고 시간이 생각보다 오래걸려서 어떻게 코딩할지 방향만 잡아놓고 오늘은 여기까지 하는게 나을것 같다. 먼저 나는 크게 폴더 data network presentation 3개로 구분했는데 data 폴더안에는 model remote repository 3개로 또 구분하였다. 먼저 model 폴더안에는 SearchImgResponse.kt 파일이있다. remote 폴더안에는 SearchImgRemoteDatasource 인터페이스 파일이 있다. repository 폴더 안에는 SearchImgRepositoryImple 파일이있다. 그다음 net..

프로그래머스 lv2 거리두기 확인하기

이 문제는 주어진 격자 형태의 대기 공간에서 사람들이 적절한 거리에 앉아 있는지 확인하는 알고리즘을 구현하는 것이다. 먼저 5 x 5 격자 형태의 대기 공간이 있는데 각 셀은 다음과 같이 3가지 유형 중 하나일 수 있다. 'P' : 사람이 앉아 있는 곳 'O': 빈 자리 'X' : 파티션으로 구분된 자리 규칙은 다음과 같다. 1. 두 사람 사이에는 최소한 하나의 빈 자리가 있어야 한다. 이 규칙은 수평, 수직, 대각선 방향으로 적용된다. 2. 파티션('X')으로만 분리되어 있는 경우, 두 사람 사이의 거리가 어떤 경우에도 상관 없다. 나는 해당 문제를 해결하기위해 다음과 같은 과정을 생각했다. 1.각 대기 공간에 대해 반복하면서 사람들의 위치를 확인한다. 2. 각 사람의 위치에서 bfs(너비 우선 탐색)..

fragment에서 activity로 데이터 전달

프래그먼트에서 액티비티로 데이터를 전달하기 위해 먼저 인터페이스를 만들어야한다. FragmentDataListener라는 인터페이스를 다음과 같이 만들었다. 그리고 메인액티비티에서 필수로 FragmentDataListener를 상속받은 후 SecondFragment에서 Activity로 데이터를 전달하기 위한 메서드를 작성한다. 그 후 SecondFragment로 가서 FragmentDataListener 타입의 변수 listener를 선언한다. 메인액티비티로부터 context가 왔는지 확인하는 작업을 하는데, true면 listener에 context를 집어넣는다.=> listener를 이용해서 호출을한다. 호출은 실제로 btnSendActivity를 눌렀을때 하게된다. 그러면 listener에서 메인..

TIL/숙련til 2024.04.14

fragment에서 fragment로의 데이터 전달

이전글에서 activity에서 fragment로의 데이터 전달과정을 봤다면 이번에는 fragment에서 fragment로의 데이터 전달과정을 보겠다. 먼저 프래그먼트 1을 메인화면에 올려두었기때문에 프래그먼트 1에서 코드를 바로 작성하였다. go frag2 버튼(btnGofrag2) 을 누르면 dataToSend 변수에 데이터를 담아 SecondFragment에 객체를 생성해서 파라미터로 데이터를 담아 보낸다. 이때 프래그먼트도 교체가 되어야하기에 다음과 같이 작성한 것이다. SecondFragment에서도 FirstFragment와 동일하게 데이터를 받아야하기에 이전에 설명한 글과 같은 과정을 거친다. https://crablo12.tistory.com/121 프래그먼트 데이터전달 1. Acitivit..

TIL/숙련til 2024.04.14

프래그먼트 데이터전달 1. Acitivity -> Fragment

먼저 액티비티에서 프래그먼트로 데이터를 전달하기위해 버튼을 2개 올려두었다. 그 후 메인액티비티에 코드를 다음과 같이 작성했다. 첫번째 버튼(fragment1Btn)을 눌렀을때 newInstance를 통해 프래그먼트 객체를 생성한다. 그리고 dataToSend 변수에 스트링을 담아서 객체에 전달한다. 그 후 프래그먼트에서는 데이터를 받아야하기에 다음과 같은 과정으로 데이터를 받는다. 마찬가지로 2번째 버튼을 누를때도 같은 과정으로 코드를짠다면 결과적으로 아래와 같은 화면이 나온다.

TIL/숙련til 2024.04.14

프래그먼트란?

프래그먼트란? 먼저 프래그먼트란 무엇일까? 프래그먼트란 액티비티 위에서 동작하는 모듈화된 사용자 인터페이스이다. 액티비티와 분리되어 독립적으로 동작할 수 없어서 액티비티가 없다면 프래그먼트도 존재하지 않는다. 프래그먼트의 생명주기 안드로이드 공식분서에 따르면, 프래그먼트는 인스턴스화되면 initialized 상태에서 시작된다. 프래그먼트가 프래그먼트의 나머지 수명 주기를 전환하도록 하려면 프래그먼트를 FragmentManager 에 추가해야한다. FragmentManager가 프래그먼트가 어떤 상태여야하는지 확인한 다음 그 상태로 전환하는 일을 담당한다. 프래그먼트가 수명 주기를 벗어나면 FragmentManager는 프래그먼트를 호스트 활동에 연결하고 프래그먼트가 더 이상 사용되지 않을 때는 프래그먼트..

TIL/숙련til 2024.04.14
728x90