분류 전체보기

    안드로이드 - ListView2 [패스트 캠퍼스 챌린지 23일차]

    View Holder ListView를 좀 개선해보도록 하겠다 ListView에서 뷰를 그릴 때 사용했던 findViewById는 리소스를 많이 사용하는 함수이다 이전 포스트에서 사용한 ListView방식을 보면 아이템 뷰를 불러올 때마다 findViewById함수가 실행되기 때문에 효율면에서 좋지 않다 View Holder에 우리가 사용할 뷰를 담아서 효율적으로 뷰를 재사용해보겠다 View Holder클래스를 하나 만들어 주겠다 이전 포스트에서 작성한 getView 메서드를 모두 지워주고 getView 메서드에 뷰와 홀더를 담을 변수를 만들어 주겠다 만약 이미 만들어 놓은 뷰가 없으면 새로 뷰를 만들어 주도록 한다 마지막에는 뷰가 담겨있는 홀더를 찾을 수 있도록 태그를 달아준다 만약 재사용할 뷰가 있다..

    안드로이드 - ListView1 [패스트 캠퍼스 챌린지 22일차]

    ListView ListView 만드는 법 리스트로 만들고 싶은 아이템의 리스트를 준비한다 -> Adapter를 이용한다 Addview와 ListView의 차이점 Addview - 리스트의 개수와 상관없이 한 번에 다 그린다 (화면에 보이지 않는 부분도 한 번에 다 그린다) ListView - 보여지는 부분 + 알파만 한 번에 그리고 필요한 경우에 더 그린다 실습 xml에 ListView를 추가한다 리스트에 담을 데이터를 간단하게 만들어 보았다 Person인스턴스를 10개만 만들어 리스트에 담았다 이제 Adapter를 만들어주면 된다 BaseAdapter를 상속 받는 Adapter를 만들어 준다 이제 각각의 추상 메소드들을 구현해주겠다 우선 생성자로 데이터가 담긴 리스트와 context를 받겠다 getV..

    안드로이드 - Addview [패스트 캠퍼스 챌린지 21일차]

    Addview Addview는 리스트뷰를 구현하는 도구이다 리스트뷰는 유사하게 반복되는 뷰를 그리기 위한 도구이다 리스트뷰를 구현할 때 Listview를 사용하거나 RecycleView를 가장 많이 사용한다 Addview는 잘 사용되지는 않지만 그래도 배운 기능이니 설명해 보겠다 Addview가 리스트뷰를 그리는 방법 Item을 담을 xml을 만들어 준다 -> 그 xml에 내용을 채워준다 -> Container view에 더해준다 -> 반복한다 Activity의 xml에 리스트를 담은 컨테이너를 만들어 준다 리스트에 넣을 아이템 뷰 xml을 만들어 준다 Activity에서 간단한 클래스를 선언하고 만든 Number클래스를 담을 리스트를 만들고 리스트에 Number인스턴스를 간단히 넣어봤다 리스트에 있는 ..

    안드로이드 - Thread [패스트 캠퍼스 챌린지 20일차]

    Thread 쓰레드는 작업 흐름으로 기본적으로 MainThread에서 작업이 이루어 진다 MainThread만 있는 경우에는 한번에 하나의 일만 할 수 있다 다른 쓰레드가 있는 경우에는 여러가지 일을 한번에 할 수 있다 안드로이드 MainThread 안드로이드의 MainThread는 UI(User Interface) Thread이며 이는 사용자의 input을 받는 쓰레드이다 UI Thread는 절대 정지시킬 수 없다 정지 시키거나 종료 시키면 더 이상 사용자의 input을 받을수 없기 때문이다 Thread 만들기 쓰레드를 만들어 보자 이제 쓰레드가 할 일을 Runnable담아서 쓰레드에 넣어 주면된다 현재까지는 쓰레드가 할일을 가지고 있는 상태이다 일을 시작하라는 명령 줘야한다 버튼 누를 때마다 쓰레드가..

    안드로이드 - Resource, Context [패스트 캠퍼스 챌린지 19일차]

    xml에서 리소스 불러오기 colors를 예시로 보겠다 colors파일에 원하는 컬러 추가하고 xml에서 경로를 적어주면 된다 앱 테마를 바꾸고 싶으면 styles파일에 원하는 스타일 만들고 manifest에서 테마를 변경해주면 된다 코드에서 리소스 불러오기 color를 예로 보겠다 버튼의 색깔을 리소스에서 가져와서 적용시켜 보겠다 string을 가져오고 싶으면 getString을 사용하면 된다 Context Context는 ActivityManagerService(개발하기 편하도록 미리 구현해놓은 기능)에 접근하도록 해주는 역할이다 안드로이드는 이미 많은 부분들이 만들어져 있다 이런 것들 사용하기 위해서는 Context가 필요한 경우가 많다 AppCompatActivity가 상속받고 있는 것들을 쫓아가..

    안드로이드 - Fragment3, NullSafety [패스트 캠퍼스 챌린지 18일차]

    Fragment→Activity 데이터 보내기 Activity에서 Fragment로 데이터 보내는 방법은 안드로이드에서 제공해주는데 Fragment에서 Activity로 데이터 보내는 방법은 없다 우리가 직접 만들어야 한다 옵저버 패턴을 적용하여 직접 리스너를 구현해 보겠다 Fragment에 리스너 인터페이스 만들어준다 인터페이스를 담을 변수를 하나 만들어 준다 Activity에서 받은 context를 형 변환해서 선언한 변수에 넣어준다 Fragment에 간단하게 버튼을 하나 만들어주고 버튼에 리스너를 장착해준다 이제 이 버튼이 리스너를 울리는 녀석이 된다 Activity에서 인터페이스를 구현해주고 추상 메소드 오버라이드 해준다 Fragment에서 버튼을 누를 때마다 Activity로 데이터 전달이 된다..

    안드로이드 - Fragment2 [패스트 캠퍼스 챌린지 17일차]

    동적으로 Fragment 추가하기 Activity의 xml에 Fragment가 들어갈 컨테이너 만들어준다 저 레이아웃을 Fragment로 바꿀 것이다 우선 Activity에서 Fragment인스턴스를 만든다 Fragment를 동적으로 작동시키기 위해서는 fragmentManager의 도움을 받아야 한다 supportFragmentManager를 가져온다 이제 트랜잭션을 만들어 줘야 한다 트랜잭션은 하나의 작업 단위로 시작과 끝이 있다 트랜잭션의 시작을 만들어 준다 이제 할 일을 적어준다 아까 만들었던 LinearLayout과 Fragment를 바꿔줄 것이다 마지막으로 트랜잭션의 끝을 알리면 된다 Fragment 떼어내기 Fragment를 붙여봤으니까 이제 Fragment를 떼어내어 보겠다 간단하게 det..

    안드로이드 - Fragment1 [패스트 캠퍼스 챌린지 16일차]

    Fragment Fragment는 Activity의 파트를 나누어 책임진다 웹의 컴포넌트 같은 느낌이다 Fragment를 화면에 나타내기 Frament를 표시하는 방법에는 정적인 방법과 동적인 방법이 있다 정적인 방법부터 보겠다 정적인 방법은 xml에 Frament를 ViewComponent로 추가하는 방법이다 별도의 Fragment 클래스 파일을 만들고 Fragment를 담을 Activity의 xml파일에 Fragment뷰를 넣어준다 Fragment를 사용할 때는 어떤 Fragment를 사용할지 name속성에 말해줘야 한다 그리고 Fragment는 반드시 id를 넣어줘야 한다 그다음 Fragment 파일로 와서 onCreateView 오버라이드 해준다 onCreateView는 Fragment가 인터페이..

    안드로이드 - Intent [패스트 캠퍼스 챌린지 15일차]

    Intent Activity와 Activity, Android System과 App, 다른 App과 내 App 간에 요청이라고 보면 된다 요청의 종류 - 전달만 하는 요청 - 리턴을 받는 요청 Intent의 종류 - 명시적 Intent: 정확한 대상에게 요청 - 암시적 Intent: 할 수 있는 대상에게 요청 Intent를 보내는 방법 Activity1에서 Activity2로 가는 Intent를 만들고 보내보았다 Intent()의 첫 번째 인자로는 context를 보내줘야 한다 현재 activity를 보내주기 위해 this를 써주었다 this뒤에 @이하는 안 써줘도 되지만 @이하를 안 써주면 안 되는 context가 있기 때문에 그냥 습관적으로 써주자 두 번째 인자를 써줄 때 class.java는 꼭 붙..

    안드로이드 - Activity, View [패스트 캠퍼스 챌린지 14일차]

    생명 주기 onCreate - activity가 만들어질 때 단 한 번만 호출된다 activity를 만들 때 단 한 번만 하면 되는 작업들 여기에서 해준다 onResume - 다시 앱으로 돌아올 때 무조건 호출된다 activity가 다시 호출될 때 하면 되는 작업들을 여기에서 해준다 onPause - 화면의 일부가 가려졌을 때 onStop - 화면 전부가 보이지 않을 때 onPause와 onStop은 구분이 애매한 경우가 있기 때문에 보통 둘 중 하나에 코드를 몰빵(?)한다 뷰 가져오는 방법 1. 직접 가져오는 방법 해당 레이아웃에서 id를 찾아 가져오는 방법이다 2. 레이아웃 import하는 방법 id를 변수명으로 바로 사용이 가능하다 뷰id를 써주면 자동으로 import된다 뷰에 리스너 달기 1. 인..