Android (8) 썸네일형 리스트형 싱글톤 패턴 싱글톤 패턴? - 애플리케이션이 시작될 때 어떤 클래스가 최초 한번만 메모리를 할당하고 그 메모리에 인스턴스를 만들어 사용하는 디자인 패턴을 말한다. - 생성자가 여러번 호출되더라도 실제로 생성되는 객체는 하나이고 최초 생성 이후에 호출된 생성자는 최초에 생성한 객체를 반환한다. - 전역 변수를 사용하지 않고 객체를 하나만 생성하도록 하며, 생성된 객체를 어디에서든지 참조할 수 있게 한다. 싱글톤 예제 ( JAVA ) public class SingleObj { private static SingleObj singleObj = null; // 외부에서 직접 생성하지 못하도록 private 선언 private SingleObj(){ } // 오직 1개의 객체만 생성 public static SingleOb.. Kotlin - lateinit,lazy 코틀린은 NULL을 허용하지않아 lateinit,lazy을 통해 초기화를 지연시킬 수 있다. lateinit 예제 class Rectangle { lateinit var area: Area fun initArea(param: Area): Unit { this.area = param } } class Area(val value: Int) fun main() { val rectangle = Rectangle() rectangle.initArea(Area(10)) println(rectangle.area.value) } lazy 예제 val str:String by lazy{ println("초기화") "hello" } println(str) // 초기화; hello println(str) //hello 차이.. FloatingActionButton 구현 dependencies 추가 implementation 'com.google.android.material:material:1.3.0' activity anim fab_open fab_close java FloatingActionButton fab_main, fab_sub1, fab_sub2; Animation fab_open, fab_close; boolean isFabOpen = false; fab_main = (FloatingActionButton) findViewById(R.id.fab_main); fab_sub1 = (FloatingActionButton) findViewById(R.id.fab_sub1); fab_sub2 = (FloatingActionButton) findViewById(R... 당겨서 새로고침 기능 추가하기 swiperefreshlayout을 사용하여 구현한다. implementation "androidx.swiperefreshlayout:swiperefreshlayout:1.1.0" 새로고침할 뷰 (보통 리스트뷰, 그리드뷰, 리사이클러뷰)를 SwipeRefreshLayout로 감싸준다. //새로고침할 뷰 리스너안에 새로고침 실행시 바뀔 내용을 추가해준다. final SwipeRefreshLayout refreshLayout = (SwipeRefreshLayout) findViewById(R.id.refresh_layout); refreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void .. Activity 생명주기 액티비티는 상태 변화(시스템이 액티비티를 생성, 중단, 다시 시작, 종료 등)를 알아차릴 수 있는 여러 콜백을 제공한다. onCreate() 시스템이 액티비티를 생성할 때 호출되는 것으로 필수적으로 구현해야한다. onStart() 액티비티가 화면에 보이기 직전에 호출되는 메소드이다. onResume() 액티비티가 화면상에 보여지게 되면서 사용자로부터 어떠한 동작도 받지 않았을 때 호출된다. 방해되는 이벤트(ex. 전화, 다른 액티비티로 이동, 기기화면이 꺼짐)가 발생하면 액티비티는 onPause()를 호출한다. onPause() 사용자가 해당 액티비티를 다른 액티비티로 전환 시킬 때 보내는 첫번째 신호이다. 액티비티가 포그라운드에 있지 않게 되었다는 것을 나타낸다.(사용자가 멀티 윈도우 모드에 있을 경우.. 안드로이드 4대 컴포넌트 안드로이드 어플리케이션은 컴포넌트로 구성되어있다. 안드로이드의 4대 컴포넌트 1. 액티비티(Activity) 2. 서비스(Service) 3. 방송 수신자 (BroadCast Receiver) 4. 콘텐트 제공자 (Content Provider) - 각 컴포넌트들은 하나의 독립적인 형태로 존재한다. - 각 컴포넌트들은 고유의 기능을 수행한다. - 각 컴포넌트들은 인텐트를 통해 서로 상호작용한다. 1. 액티비티(Activity) 액티비티는 사용자와 상호작용을 담당하는 인터페이스이다. 즉 UI 화면을 담당하는 컴포넌트이다. - 어플리케이션은 반드시 하나 이상의 액티비티를 가지고 있어야 한다. - 두개의 액티비티를 동시에 보여줄 수 없다. - 다른 어플리케이션의 액티비티에 접근할 수 있다. - 액티비티 내에서.. Toolbar 검색버튼 만들기 Toolbar안에 검색버튼을 만들었습니다. 검색버튼을 구현하기전에 액션바를 없애고 toolbar를 만들어줘야합니다. activity_main.xml Toolbar를 만들기 위해 res/menu/search_menu.xml을 만들어주고 검색아이콘을 넣습니다. MainActivity.java toolbar를 설정해주고 검색기능을 추가합니다. toolbar = (Toolbar) findViewById(R.id.toolbar); setSupportActionBar(toolbar); //메뉴 생성하는 onCreateOptionsMenu @Override public boolean onCreateOptionsMenu(Menu menu) { super.onCreateOptionsMenu(menu); //search_.. Retrofit2 + Okhttp3 Retrofit2 Retrofit은 Square사에서 만든 라이브러리로 서버와 통신하기 위한 방법 중 하나입니다. 구현이 간단하며 응답속도가 빠른것이 장점입니다. 아래 사진을 보면 Retrofit이 가장 빠른것을 볼 수 있습니다. Okhttp3 Retrofit은 기본적으로 Okhttp를 네트워킹 계층으로 활용하며 그 위에 구축됩니다. OkHttp는 이미 Retrofit2 모듈의 종속성에 포함되어 있어, 별도의 OkHttp 설정이 필요하다면 Retrofit2에서 OkHttp 종속성을 제외해야 합니다. 사용법 mysql과 php를 이용하여 서버 구축을 해주었습니다. 저는 로그인 서버를 구축하기위해 user테이블을 만들어주었습니다. CREATE TABLE `USER` ( `userID` VARCHAR(20) .. 이전 1 다음