- 지난시간까지 배운걸로 기본적인 디자인은 끝났습니다.
- 이제 중요한 꼭 필요한 Context만 하면 됩니다.
- 새로운 프로젝트인 MyContextApplication을 만듭니다.
- activity_main.xml의 전체 Layout을 Linear로 바꿔줍니다.
- Toast는 작은 팝업으로 작업에 관한 간단한 피드백을 제공합니다.
- Alert는 알림창입니다.
- Snackbar는 하단에서 위로 슥 올라오는 바입니다.
- 다음 매개변수를 갖는 makeText() 메서드를 사용합니다.
- 1. 애플리케이션 Context
- 2. 사용자에게 표시되어야 하는 텍스트
- 3. 토스트 메시지가 화면에 남아 있어야 하는 시간
makeText() 메서드는 올바르게 초기화된 Toast 객체를 반환합니다.토스트 메세지 띄우기
- MainActivity에서 activity_main에서 만든 Button을 선언해줍니다.
- init( )을 생성한 후 id를 찾아줍니다.
- 안드로이드 공식문서에서 토스트 메세지 표시 자바 코드를 복사합니다.
- MainActivity에서 initLr( )을 생성한 후 위에서 btnToast.setOnClickListener( )에 복사한 코드를 붙여 넣어습니다.
- amulator를 실행시킨 후 토스트 버튼을 누릅니다.
- 하단에 'Hello toast!'가 작은 메세지 창으로 나타났다가 사라지는 것을 확인할 수 있습니다.
- Toast 알림창은 MainActivity 화면 위에 뜨는 것입니다.
- 즉 새로운 Activity를 만들어서 띄운게 아니라, 기존의 Activity에 스택으로 겹쳐져서 뜨는 것입니다.
- 새로운 액티비티가 만들어져서 덧대진다라면 Context는 필요가 없습니다.
- 기존의 있는 화면(MainActivity) 위에 Toast를 띄우기 위해서 Context가 필요합니다.
- Toast는 Activity 정보가 필요합니다.
- Alert와 SnackBar는 어떤 정보를 필요로 하는지 눈 여겨 봐야합니다.
- this는 new를 해서 만든 자기 자신의 주소를 나타냅니다.
- 안드로이드 공식문서에서 SnackBar 코드를 복사합니다.
- initLr( ) 안에 btnSnackBar.setOnClickListener( )를 만들어줍니다.
- 복사한 코드를 안에 붙여넣어줍니다.
- SnackBar는 View를 가져와야만 Activity에 띄울 수 있습니다.
- LinearLayout에 lr이란 아이디를 지정해줍니다.
- View인 lr의 아이디를 받아주고 text 출력부분에 '스낵바'를 넣어줍니다.
- 스낵바라고 적힌 새로운 Bar 알림이 뜨는것을 확인할 수 있습니다.
- 안드로이드 공식 문서에서 Alert 코드를 복사합니다.
- FireMissilesDialogFragment 클래스를 새로 만들어줍니다.
- 복사한 코드를 그대로 붙여 넣은 후에 import를 해줍니다.
- string부분을 바꿔줍니다.
- 메서드를 지우고 익명 함수로 바꿔줍니다.
- 로그를 찍어서 확인할 수 있게 세팅을 해줍니다.
- 공식문서에서 showNoticeDialog 메서드를 복사해줍니다.
- MainActivity에 코드를 붙여넣습니다.
- import를 해주고 showNoticeDialog를 FireMissilesDialogFragment로 바꿔줍니다.
- btnAlert.setOnClickListener( )에 메서드를 연결해줍니다.
- 테스트를 해보면 alert가 정상 작동합니다.
- Alert는 java 파일에서 디자인을 다 하기때문에 xml은 만들 필요가 없습니다. 물론 사용자 설정으로 xml에서 만들수도 있습니다.
- Alert는 출력을 fragment에 하기 때문에 fragment만 받으면 됩니다.
- Alert Dialog Builder는 재사용이 안됩니다.
- Toast를 띄우려면 Context가 필요합니다.
- Context는 추상적인 Context로 잡아야합니다.
- Alert의 예를 누르면 Toast를 띄우기 위해서 Toast 관련 코드를 넣어줍니다.
- context를 getActivity( ).getApplicationContext( );로 바꿔줍니다.
- Toast가 잘 실행되는 것을 볼 수 있습니다.
- MainActivity로 바꾸고 다운 캐스팅을 해주면 앱이 강제로 종료 됩니다.
- .getApplicationContext( )를 getBaseContext( );로 바꿔도 앱이 강제로 종료됩니다.
- MainActivity를 FragmentActivity로 바꾸면 잘 실행이 됩니다.
- view 받을때 메모리 Leak이 생길 수 있으므로 콜백을 쓰는게 좋은데, 내가 인터페이스로 함수를 넘길 때 콜백을 사용해야 합니다.
- BottomNav에서 Intent를 사용해서 Helper 작성 코드
: https://github.com/codingspecialist/InstagramClone-Android-Firestore/blob/master/app/src/main/java/com/cos/instagramclone/Utils/BottomNavigationViewHelper.java
- 위와 같은 회색 화면을 Skeleton UI라고합니다.
- 루프 애니메이션, 프로그레스 바 등등 용어를 알아야 내가 필요한 부분을 검색할 수 있습니다.