Android 썸네일형 리스트형 231219 (Android) 소셜 로그인 기능 사용하기(네이버) 1. 네이버 로그인 API를 신청한다. 2. 개발환경설정 네이버 로그인 API를 안드로이드 프로젝트 디펜던시에 그래들로 추가한다. 3. 네이버 아이디 로그인 객체를 초기화한다. 자바에서는 INSTANCE과정이 추가된다. NaverIdLoginSDK.INSTANCE.initialize(this,"클라이언트 Id","클라이언트 pw","클라이언트 이름"); 4. 네이버 로그인 객체를 xml에 생성해준다. 5. 자바 파일에서 로그인 콜백 처리를 만들어준다. binding.buttonOAuthLoginImg.setOAuthLogin(new OAuthLoginCallback() { @Override public void onSuccess() { } @Override public.. 더보기 231213 (Android) 안드로이드에서 데이터 입출력 요청 → 데이터로 컨트롤러가 응답을 처리(resp가 처리) REST API : 안드로이드와 데이터베이스 중간을 연결해주는 미들웨어를 말한다. 안드로이드 미들웨어 연동하기 manifests.xml에 내용을 추가한다. 앱이 인터넷을 사용한다는 것을 명시한다. 안드로이드는 3단계 위험도 구분이 있고, 인터넷은 낮은 권한으로 가능하다. 카메라는 사용자 허가가 필요하다. android:usesCleartextTraffic="true" application 태그 내부에 작성한다. http 프로토콜을 사용하도록 한다. 안드로이드는 보안상 이유로 기본값으로 http 요청을 막아두었다. https만 사용 가능 https는 SSL, TLS 등 암호화된 정보를 주고받는다. 기본값으로 암호화 된 .. 더보기 231211 (Android) 리사이클러뷰로 스와이프 뷰 만들기 viewpager2를 xml에서 만들어준다. viewpager2에 리사이클러뷰 어댑터를 설정해준다. setOrientation : 스와이프 방향을 설정한다. 양쪽에 다음 페이지와 이전 페이지가 살짝 보이게 하고 싶은 경우 아래의 코드를 사용한다. setClipToPadding : 패딩을 스크롤 영역으로 사용하기 위해서 false를 부여해 준다. setClipChildren : 뷰가 자신의 영역 밖에서 동작할 수 있도록 false로 처리한다. true시 자신의 영역에서만 동작한다. setOffscreenPageLimit : 선택된 페이지 이외에 로딩될 페이지 수를 정한다. 좌우로 선택된 개수만큼 미리 로딩된다. setPageTransformer : 페이지 전환 효과를 설정.. 더보기 231206 (Android) 메뉴 리소스 id, icon, showAsAction, title 요소를 가져야 한다. showAsAction 종류 never : 아이템 표시 x ifRoom : 표시 공간이 있다면 표시 withText : 글자와함께 표시 always : 항상 보이기 하단 네비게이션 바 만들기 //뒤의 물결은 itemBackground 속성으로 색을 바꿀 수 있다. 뷰 결합(View Binding) 레이아웃 파일 내부에 있는 자원을 자바의 객체 형태로 바꿔 귀찮음 findViewById과정을 생략하고 싶을 때 사용 xml 레이아웃 자체를 전부 바인딩 클래스로 미리 생성을 해둔다.(android) 바인딩 인스턴스를 생성하여 내부에서 사용 가능한 객체를 만듬. ( LayoutInflater ) ↔ 바인딩 인스턴스 클래스 연.. 더보기 231205 (Android) Splash화면 앱 메인 화면의 로고를 보여주는 화면 마케팅 효과나 초기 데이터 로딩 등을 위하여 사용한다. Handler를 이용하여 전환하는 방식을 사용한다. Handler 작업을 지연시키거나 메세지로 보낸 후 사용을 위한 객체 runOnUiTread : 백그라운드에서 메인(UI) 스레드를 전달할 때 사용한다. new Handler().postDelayed(() -> { Log.d("스플래시", "run: 5초 후"); },5000); ProgressDialog 로딩 중에 사용자가 어떤 동작을 하고 있는지 인지를 못 하는 경우 프로그램 오류, 버그로 의심하고 종료하기 때문에 동작 중임을 보여주기 위한 기능 ProgressDialog dialog = new ProgressDialog(this); dial.. 더보기 231201 (Android) 프래그먼트 프래그먼트 생성 후 onCreateView만 있으면 동작 하게 된다. 프래그먼트를 액티비티에 붙이는 과정 getSupportFragmentManager().beginTransaction().replace(R.id.container, new MyFragment()).commit(); 어댑터 어댑터 종류 ArrayAdapter 원시적인 형태의 어댑터이다. 컨텍스트, 구조, 자료의 형태로 파라미터를 요구한다. ArrayAdapter adapter = new ArrayAdapter(getContext(), android.R.layout.simple_list_item_1, arr); listv.setAdapter(adapter); BaseAdapter 클래스를 만들고 BaseAdapter를 상속받아서 .. 더보기 231129 (Android) LayoutInflater 인플레이션 xml 레이아웃에 정의된 내용이 메모리에 객체화 되는 과정 setContentView로 선택된 요소만 메모리에 올라간다. setContentView가 되기 전에 뷰에 접근하려 하면 nullpoint오류가 발생한다. 레이아웃 인플레이터 xml 파일을 해석하여 layout 공간에 붙여준다. 정상적으로 레이아웃을 붙이는 처리 후 결과를 View 타입으로 묶어서 return 해준다. 오류가 발생하는 경우는 없는 공간에 지정하는 경우가 많다. 초기화 식 Activity에서 사용하는 경우 AppCompatActivity의 getLayoutInflater를 사용한다. getSystemService(Context.LAYOUT_INFLATER_SERVICE) LayoutInflate.. 더보기 231122 (Android) Intent에 정보를 추가하여 액티비티 전환하기 intent.putextra 를 이용하여 다양한 값을 넘길 수 있다. intent.getStringExtra(**"strkey"**) 처럼 값을 이용할 수 있다. 2번째 파라미터를 넣으면 해당 키의 값이 없는 경우의 값을 설정할 수 있다. 일반 클래스를 putextra를 이용하여 전송할 때 (dto등) 직렬화가 필욯다. 직렬화 : 객체가 가진 데이터 부분을 바이트 형태로 일자로 정리하여 데이터 부분만 전송한다. 다른 플랫폼에서 메소드가 필요 없기 때문에 데이터만 전송이 필요하다. intent.getSerializableExtra 를 통해 값을 다시 dto에 담을 수 있다. 다시 가져올 때에는 강제캐스팅이 필요하다. 인텐트의 종류 명시적 인텐트 : 액티비티 .. 더보기 이전 1 2 다음