728x90

TIL 104

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

프로그래머스 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의 최대공약수 " 이렇게 해주면 대각선에 따라 자르면서 생기는 비정사각형의 수를 나타낼 수 있다. 결론적으로 코드는 아래와 같이 짰다.

프로그래머스 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

프로그래머스 lv2 점 찍기

해당문제를 풀면서 노트에 그려보면서 문제를 이해했다. a와 b는 0,1,2,3,4... 이렇게 1씩 차이나는 수열이라고 생각한다면 주어진 k와 d를 이용해서 점을 찍어나가면 a*k => x축방향 b*k => y축방향 이때 d의 거리 반경 내에 있어야한다. 그래서 d = 4라고할때 위의 사진처럼 좌표를 4이내로 찍었다. 그랬더니, 결과적으로 (0, 0), (0, 2), (0, 4), (2, 0), (2, 2), (4, 0) 위치에 점을 찍어 총 6개의 점을 찍었다. 그래서 코드상에서는 x축방향으로 0부터 d 범위까지 k 만큼 건너뛰면서 점을 찍는다고 생각했고, 마찬가지로 y도 0부터 d범위까지 k만큼 건너뛰면서 점을 찍는다고 생각했다. 다음과 같이 코드를 작성하였으나 시간초과로 실패하였다. 아무리 풀어도 ..

RecyclerView

저번에는 ListView나 GridView를 이용해서 사진을 나타내는 작업을 했는데 이번에는 RecyclerView를 사용하는 방법을 공부해보았다. RecyclerView도 ListView와 마찬가지로 adapter 클래스가 필요하다. 다만 다른점이 있다면 리스트뷰는 스크롤을 했을때 각 아이템들이 삭제되고 생성되기를 반복하여 성능이 떨어진다는 단점이 있지만, 리싸이클러뷰는 스크롤을 했을때, 삭제 및 생성을 반복하지 않고 재활용된다는 점이 있어서 리스트뷰보다는 리싸이클러뷰를 많이 사용한다고 한다. 리스트뷰와 같이 리싸이클러뷰도 adapter라는것을 사용한다고 했다. 하지만 리싸이클러뷰는 리스트뷰와 다르게 ViewHolder라는것을 사용해서 뷰에있는 아이템들을 재활용하는 기능을 갖추고 있다. 나는 정확히 이..

TIL/숙련til 2024.04.09
728x90