Android
![[Android] Volley [서버통신]](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fc3jCSP%2FbtrHlynowK5%2FAAAAAAAAAAAAAAAAAAAAAOzIZMwCaQlYCIFN49EI2YpEBerHhc-gA0AQSibiMB7G%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DXS0mRbKtqV9CP%252BUM8FjdA%252B7v2sw%253D)
[Android] Volley [서버통신]
Volley란? - Android App의 네트워킹을 더 쉽고, 무엇보다 더 빠르게 하는 HTTP 라이브러리 Volley 동작 순서 1. 사용자가 Request객체를 생성하여 요청/응답/에러 처리에 대한 로직을 작성한다. 2. RequestQueue에 추가한다. 3. RequestQueue가 자동으로 Thread를 생성하여 서버로 요청을 보낸 후 응답받는다. 4. 응답이 오면 Request에 등록된 ResponseListener로 응답데이터를 전달한다. * 별도 Thread관리, UI를 위한 handler 를 다룰 필요가 없다. Volley 라이브러리 추가 설정 라이브러리 추가 : Andorid Volley 구글에 검색 후 dependencies 복사 후 추가 implementation 'com.andr..
![[Android]Adapter 실습](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FAX1ou%2FbtrHfQO6SSC%2FAAAAAAAAAAAAAAAAAAAAAOqmEbq29HJA71L1iNfh_iwqYEW63YPGHyCGLfYFbanS%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DAUC%252FvjoOc%252FzxlyZWsL5f%252BVrUUkU%253D)
[Android]Adapter 실습
실습(Custom ListView) MainActivity package com.example.ex_0714; import androidx.appcompat.app.AppCompatActivity; import android.os.Bundle; import android.widget.ListView; import java.util.ArrayList; public class MainActivity extends AppCompatActivity { //ListView 객체 선언 ListView listview; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentVi..
![[Android] Adapter View](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2Fb1AmeH%2FbtrHfR8afsr%2FAAAAAAAAAAAAAAAAAAAAAJ7WGR7FuAwNXOgBsILgak9UreiY6cOAM4WnTA_qJHo_%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DWlajtEeKMBeottP760IOgaCujYY%253D)
[Android] Adapter View
실습(로그인) package com.example.ex_0713; import androidx.activity.result.ActivityResult; import androidx.activity.result.ActivityResultCallback; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; imp..
![[Android] Activity & intent](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FbcFzio%2FbtrG9TY4hyF%2FAAAAAAAAAAAAAAAAAAAAAPQV_V0rkVXqV_NovoF0MnqFZuiI4Nwt-kgxfrZARVMR%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Dy7RTK03jMN%252Fymydk%252FG7Suq1MXO4%253D)
[Android] Activity & intent
Activity & intent intent 란? - 하나의 액티비티가 다른 액티비티를 실행시킬 수 있는 메시지 시스템 -인텐트는 실행하는 방법에 따라 ' 명시적 인텐트와'와 '묵시적 인텐트'로 구분 묵시적 intent 실습 ★권한 부여하기★ if(ContextCompat.checkSelfPermission(MainActivity.this, Manifest.permission.CALL_PHONE)!= PackageManager.PERMISSION_GRANTED){ // 권한 요청하기 ActivityCompat.requestPermissions(MainActivity.this, new String[]{Manifest.permission.CALL_PHONE},0); } package com.example.e..
![[Android]Onclick 실습](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2F8a4xT%2FbtrGPBx2J7P%2FAAAAAAAAAAAAAAAAAAAAAP_HSt44LAGVheJcQTqCysikZHATSbFh_oye9J2vtqXy%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3Dl4YrIdoIIxASIGZ%252BSVHMQPcEqgk%253D)
[Android]Onclick 실습
Onclick 실습1(배경색 변경) package com.example.ex_0708; import androidx.appcompat.app.AppCompatActivity; import androidx.constraintlayout.widget.ConstraintLayout; import android.graphics.Color; import android.os.Bundle; import android.view.View; import android.widget.Button; public class MainActivity extends AppCompatActivity { //1. 사용하고자 하는 View 선언하기! ConstraintLayout layout; Button btn_change; @Overr..
![[Android] Layout](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2FcDY3Go%2FbtrGF6Gwstk%2FAAAAAAAAAAAAAAAAAAAAAHIdClE91xcJTHp145rJHb6-fgSDGYyV1NQVjM6-iZMx%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DOFNdgQH4o0tWHpEMC4zrPg4E1Jo%253D)
[Android] Layout
Layout이란? 화면 안에 넣은 뷰의 크기와 위치를 지정하는 공간 -Layout 종류 Linear Layout - 박스(Box) 모델을 기반한 Layout - 한 쪽 방향으로 쌓는 방식으로 view들을 수직 또는 수평으로 구성 Cpnstraint Layout - 제약조건(Constraint)을 사용해 화면을 구성하는 Layout - 복잡한 레이아웃을 단순하게 계층구조를 이용하여 표현 할 수 있는 ViewGroup - 각 View는 각 축(X,Y)에 대한 최소 하나의 제약 연결 필요 Chain linear groups 제어 Event 처리 방식 - XML로 Event Method 연결 - Listener interface를 Activity Class에 구현 - Listener Class를 익명 Class..
![[Android] 환경 구축 및 기초](https://img1.daumcdn.net/thumb/R750x0/?scode=mtistory2&fname=https%3A%2F%2Fblog.kakaocdn.net%2Fdna%2F70Bgj%2FbtrGEikCkzr%2FAAAAAAAAAAAAAAAAAAAAALgZGlSmPZWzatIHoPqu2NKhFm1VoR2bLCXkXo-jD0Ju%2Fimg.png%3Fcredential%3DyqXZFxpELC7KVnFOS48ylbz2pIh7yKj8%26expires%3D1753973999%26allow_ip%3D%26allow_referer%3D%26signature%3DZy5IvM2wm4K2ewRgu2f2cKM%252BO2o%253D)
[Android] 환경 구축 및 기초
설치(한번 설치하면 수정하기 복잡하니 설치할 때 확실히!!) Next >> Standard >> 테마 설정(자유) >> License 동의 하고 Finish SDK Manager 선택 >> Android 11.0(R)체크 SDK Tools탭으로 가서 Emulator, Platform-Tools, intel x86 Acclerator installed 확인 >> Apply 선택 후 확인(설치 진행) Vitual Device Manager 선택 >> Create vitual Device >> pixel2 체크 후 Next >> (R)Download >> 완료 후 Next >> Name 지정(원하는 이름) 프로젝트 생성 New project >> Empty Activity 선택 후 Next >> 어플 이름 설..