본문 바로가기

분류 전체보기

(38)
Fragment 1. 정의 액티비티 위에서 동작하는 모듈화된 사용자 인터페이스 여러 개의 프래그먼트를 하나의 액티비티에 조합해 사용 (프래그먼트 재사용 가능) 액티비티와 분리되어 독립적 동작 2. 액티비티 vs 프래그먼트 1) Activity : 인텐트를 통해 액티비티간 데이터 전달 2) Fragment : 메소드로 프래그먼트간 데이터 전달 Activity 적게 사용 가능, 복잡도 줄임 재사용 할 수 있는 레이아웃 분리해서 관리 가능 자원 이용량 적어 속도 빠름 3. 프래그먼트 파일 xml 파일 화면의 표시될 뷰 정의 Fragment class FirstFragment : Fragment() { override fun onCreateView( inflater: LayoutInflater, container: ViewGr..
뷰 바인딩 1. 정의 뷰와 상호작용하는 코드 쉽게 작성 뷰 바인딩 : 모듈에 있는 각 XML 레이아웃 파일의 결합 클래스 생성 바인딩 클래스의 인스턴스 : 상응하는 레이아웃 안에 ID가 있는 모든 뷰 직접 참조 가능 2. 설정 1) gradle(Module:app) android{ ... // AndroidStudio 3.6 ~ 4.0 viewBinding{ enabled = true } // AndroidStudio 4.0 ~ buildFeatures{ viewBinding = true } } 2) Activity class MainActivity : AppCompatActivity() { private lateinit var binding: ActivityMainBinding override fun onCrea..
RecyclerView에 데이터 추가하기 (Fragment, ViewPager2) Q : FAB를 눌러서 Todo 추가 화면을 노출 시키고, 제목과 내용을 입력해서 “Todo” 탭에 반영 1. requireActivity() 사용 MainActivity fabAdd 버튼 눌러 TodoActivity로 이동 class MainActivity : AppCompatActivity() { private lateinit var binding: MainActivityBinding private val viewPagerAdapter by lazy { MainViewPagerAdapter(this) } override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) binding = MainActivityB..
Array 1. MutableList - 요소를 추가, 제거, 변경 작업 수행 가능 - 배열 기반 or 링크드 리스트 등 다양한 방식 구현 가능 val mutableList: MutableList = mutableListOf(1, 2, 3, 4, 5) mutableList.add(6) // 요소 추가 mutableList[2] = 10 //요소 수정 mutableList.removeAt(0) // 요소 제거 - 특정한 위치에 값 추가 val values = mutableListOf(4, 6, 8) val item = 2 values.add(0, item) //index, element println(values) // [2, 4, 6, 8] 2. ArrayList - 요소를 추가나 제거할 때 자동으로 크기 조정 -..
항해 6Week FACTS & FINDINGS 1. 팀 프로젝트 Singletone도 사용해보았고 RecyclerView 삭제, 추가, 수정 기능까지 모두 구현해보았다. string.xml으로 영어 버전도 만들어 구현해보고 Font dp와 sp의 차이도 알아보았다. 2. Singletone 객체의 인스턴스가 오직 1개만 생성되는 패턴이어서 모든 클래스에서 똑같은 객체를 가져와서 사용할 수 있다. 데이터의 공유가 쉬워 Intent 대신 Singletone의 편리함을 알게 되었다! 3. URI 애뮬레이터 안의 갤러리를 이용해 사진을 불러오면 외부 저장소 문제가 뜬다.. 이것을 어떻게 해결해야되는지 다시 한번 살펴봐야겠다. 다른 팀에도 그런 문제를 해결 못한거같았다. FEELINGS 팀 프로젝트를 이렇게 열심히 해본 건 처음..
향해 5Week FACTS & FINDINGS 1. 선발대 과제 TabLayout과 ViewPager2를 연결해보았고 RecyclerView, Status Bar, FloatingActionButton도 구현해보았습니다. 구현을 하기 위해 Fragment, ViewBinding, ViewHolder, RecyclerView에 대해서 공부를 했습니다. 2. RecyclerView ViewHolder와 ViewGroup에 대한 개념이 헷갈려 ViewGroup에 대한 것도 같이 공부를 하게 되었다. 또한, ListView에 대한 내용도 알아야 되었던 것 같다. 3. OOP OOP 강의를 듣고 업 캐스팅과 다운 캐스팅에 대해 이해를 했습니다. 또한, val, var 에 대한 중요성에 대해서도 알게 되었습니다. FEELINGS ..
업 캐스팅, 다운 캐스팅 Q : 광역버스, 고속버스, 시내버스가 터미널에 모두 들어갈 수 있다. 시내버스는 못 들어가게 하려면? 1. enterTerminal 인터페이스 구현 2. EnterTerminal 인터페이스를 상속받는 클래스 3. EnterTerminal 인터페이스를 상속받지 않는 클래스 4. 배열 타입을 EnterTerminal 인터페이스로 생성 - CityBus 클래스는 EnterTerminal 인터페이스를 상속받지 않아서 - CityBus 클래스로 만든 객체는 배열에 넣어지지 않는다. 업 캐스팅 - 자식인 ExpressBus 타입에서 부모 Bus 타입으로 업캐스팅 - bus.engineStart() 오류 : Bus 클래스의 함수이므로 ExpressBus 타입으로 함수 불러올 시 오류 남 다운 캐스팅 - 부모 Bus..
View와 ViewGroup 1. View - 화면에 보이는 모든 요소 - TextView, EditText, Button, ImageView 등등 2. ViewGroup - 뷰를 포함하여 화면에 적절히 배치하기 위한 일종의 컨테이너 - LinearLayout, RelativeLayout, FrameLayout, TableLayout, ConstraintLayout 등등 참조 https://kadosholy.tistory.com/127