분류 전체보기(229)
-
RecyclerView
호출 되는 순서대로 보자면, getItemCount가 불리면서, 총 item 갯수가 몇개 인지 판단하고, getItemViewType이 불리면서, 현재 item view의 position에 해당하는 viewType을 판단한다. 그 후 onCreateViewHolder에서, viewType에 해당하는 ViewHolder를 생성하여 return한다. (각 item view의 정보를 갖고있는 애는 ViewHolder라고 하였다. 그러므로 Adapter는 계속해서 ViewHolder를 이용해 item view를 관리할 것 이다.) onBindViewHolder에서는 생성된 viewHolder와 position을 전달받아서, 현재 position에 맞는 data를 viewHolder가 관리하는 view들에 bin..
2019.10.08 -
Instnaceof
class Car class Sonata extends Car test(Sonata) test(Car c) 참조변수가 참조하고 있는 인스턴스의 실제 타입을 알아보기 위해 instanceof 연산자를 사용합니다. 보통 instanceof의 왼쪽에는 참조변수(부모클라스)를 오른쪽에는 타입(클래스명)(자식클라스)이 피연산자로 위치합니다. 연산의 결과로 boolean값인 true, false 중의 하나를 반환 합니다. -> instanceof를 이용한 연산결과로 true를 얻었다는 것은 참조변수가 검사한 타입으로 형변환이 가능하다는 것을 뜻합니다. -> 함수를 구현할 때 어떤 클래스가 들어올지 모르기때문에 부모클래스타입으로 지정해놓고, if (c instnacof Sonata) 처럼 소나타로 형변환이 가능하다..
2019.10.08 -
MVVM 패턴,Ovserver패턴
MVVM패턴 M : Model V : View(Activity) ViewModel인스턴스를 만들고 관찰한다 contactViewModel = ViewModelProviders.of(this).get(ContactViewModel::class.java) contactViewModel.getAll().observe(this, Observer { contacts -> // Update UI }) 즉, 관찰하고 있던 LiveData가 변하면 무엇을 할 것인지 액션을 지정할 수 있다. 이후 액티비티/프래그먼트가 활성화되어 있다면 View에서 LiveData를 관찰하여 자동으로 변경 사항을 파악하고 이를 수행한다. onChanged 메소드를 가지고 있다. 즉, 관찰하고 있던 LiveData가 변하면 무엇을 할 것인..
2019.10.08 -
Git 기본개념
다른 브랜치로 이동하기 git checkout {이동할 Branch 이름} '다른 Branch로 이동한다'는 것은 현재 작업 디렉토리의 소스코드 상태를 해당 Branch의 상태로 모두 바꾼다는 것을 의미합니다. 따라서, Branch를 이동할 때마다 디렉토리 내에 있는 (추적중인) 파일들이 시시각각 변하게 됩니다. 시스템 입장에서는 파일들을 수정하고 새로 쓰거나 삭제하는 작업과 같이 때문에, Commit하지 않은 작업 내용이 있다면 Checkout을 할 수 없습니다. 작업 중에 다른 Branch의 상태를 보기 위해 임시로 Checkout하려면 Commit을 하거나 stash 명령을 이용해 작업 내용을 임시 저장한 뒤 Checkout 해야 합니다. 이동할 Branch 이름 대신 Commit ID를 입력하면 ..
2019.10.08 -
GIT CHECKOUT ERROR: THE FOLLOWING UNTRACKED WORKING TREE FILES WOULD BE OVERWRITTEN BY CHECKOUT
local branch로 작업중, pull할 때 오류가나는경우-> master분기를 재설정 한 후 pull한다. git fetch --all git reset --hard origin/master
2019.10.08 -
DrawerNavigator
각 스크린마다 static navigationOptions = ({ navigation }) => ({ title: 'Home', headerLeft: ( { navigation.openDrawer(); }} /> ) }); static navigationOptions = ({ navigation }) => { return { headerTransparent: 'true', headerLeft: ( { navigation.goBack(); }} /> ) }; }; 등의 코드를 추가해아한다
2019.10.06