안드로이드/잡다한 지식

    뷰 바인딩

    뷰 모델을 작성하면서 findViewById에 불편함을 느꼇다. 작년까지만 해도 코틀린 익스텐션을 지원했지만 이번 년도에는 지원을 하지 않는다고 한다. 코틀린 익스텐션을 지원하지 않는 이유를 찾아 보니 아래와 같은 문제점이 있어서 지원하지 않는다고 한다. 전역 네임스페이스 오염 코틀린에서만 실행됨 Null 허용 여부를 알려주지 않음 안드로이드는 코틀린 익스텐션 대신 뷰 바인딩을 권장을 한다. 뷰 바인딩은 Null로부터 안전하며, 빠른 컴파일이 된다는 장점이 있다. 적용방법 app.gradle android{ buildFeatures{ viewBinding = true } } MainActivity.kt (저번 뷰모델글 중 메인 엑티비티랑 비교하면 많이 줄어들었습니다) package com.example...

    ViewModel 및 사용

    ViewModel 및 사용

    뷰 모델은 위의 사진처럼 생명주기에 영향을 받지 않는다. 뷰 모델은 LiveData라는 것을 가진다. 그래서 생명주기로 인해서 pause 또는 Resume 등등 어떤 상황이 일어나도 LiveData를 계속 가질 수 있다. 라이브 데이터의 장점으로는 UI와 데이터 상태의 일치 보장, 메모리 누출 없음 등의 장점을 가지고 있다. (출처 - ViewModel 개요 | Android 개발자 | Android Developers) ViewModel을 실제로 만들어보기 위해서 프로젝트를 제작했다. app.gradle dependencies { implementation "org.jetbrains.kotlin:kotlin-stdlib:$kotlin_version" implementation 'androidx.core..

    안드로이드 스튜디오 EditText 밑줄 제거

    안드로이드 스튜디오 EditText 밑줄 제거

    android:background="@null"만 추가하면 없어집니다.

    안드로이드 스튜디오 Recycler View 사용

    안드로이드 스튜디오 Recycler View 사용

    XML 부분 Recycler View 안에 들어갈 아이템들 디자인 Recycler View Activity XML부분 recyclerView를 넣어주시면 됩니다. TextView, space는 제꺼 디자인 부분이여서 안넣어도 됩니다. 자바 부분 Data Class 부분 package com.example.gui.adapter; public class collect_data { private String Day; private String example; public collect_data(String day, String example){ this.Day = day; this.example = example; } public String getDay(){ return Day; } public void s..

    안드로이드 스튜디오 intent로 bitmap 넘기기

    안드로이드 스튜디오 intent로 bitmap 넘기기

    보내는 코드 Intent intent= new Intent(this,ResultActivty.class); intent.putExtra("사진", bitmap); startActivity(intent); 받는 코드 Intent intent = getIntent(); Bitmap bitmap = intent.getParcelableExtra("사진");

    안드로이드 스튜디오 내부 데이터베이스 연결하기

    공부한 내용을 다시 정리한다는 의미로 작성햇습니다. public class DBManger extends SQLiteOpenHelper { static final String TABLE_NAME = "Info"; private static DBManger dbManger = null; // Singletone public static DBManger getInstance(Context context, String name, SQLiteDatabase.CursorFactory factory, int version){ if (dbManger == null) dbManger = new DBManger(context, name, factory, version); return dbManger; } // Const..

    안드로이드 앱에서 API 요청하기 (Flask 사용)

    안드로이드 앱에서 API 요청하기 (Flask 사용)

    Android 부분 권한 설정 AndroidManifest.xml build.gradle plugins { id 'com.android.application' } android { compileSdkVersion 30 buildToolsVersion "30.0.2" defaultConfig { applicationId "com.example.socket_android" minSdkVersion 16 targetSdkVersion 30 versionCode 1 versionName "1.0" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { release { minifyEnabled false proguard..

    안드로이드 스튜디오 문자 받기, 문자 전송하기

    안드로이드 스튜디오 문자 받기, 문자 전송하기

    1. app(오른쪽클릭) -> new -> other -> BroadCast Receiver 추가 2.manifest 폴더에 AndroidManifest.xml에서 다음과 같이 추가하기 receiver는 이미 추가되며, intent-filter를 추가해야함 3. 권한 요청 private final int SMS_RECEIVE_PERMISSON = 1; public void checkPermission() { if (ActivityCompat.shouldShowRequestPermissionRationale(this, Manifest.permission.SEND_SMS)) { ActivityCompat.requestPermissions(this, new String[]{Manifest.permission...