System Programming/Android

    [Android/Java] Fragment Bottom Navigation view

    [Android/Java] Fragment Bottom Navigation view

    Demo 구성 activity fragment layout menu header (굳이 필요없음) - [ManiActivity.java] package com.sjcoding.krhana; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.drawerlayout.widget.DrawerLayout; import androidx.fragment.app.Fragment; import android.os.Bundle; import android.view.MenuItem; import android.view.MotionEvent; import android.view.View; imp..

    [Android/Java] Fragment간 값 전달

    [Android/Java] Fragment간 값 전달

    Demo MainActivity.java package com.sjcoding.myapplication; import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity implements FragmentA.FragmentAListener, FragmentB.FragmentBListener { private FragmentA fragmentA; private FragmentB fragmentB; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedI..

    [Android/Java] BlankFragment

    [Android/Java] BlankFragment

    Demo 구성 activity layout fragment MainActivity.java package com.sjcoding.myapplication; import android.os.Bundle; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); /*ExampleFragment fragment = new ExampleFra..

    [Android/Kotlin] Live Data

    Live Data는 Data를 저장하고 변화를 관찰할 수 있는 객체이다. Observer를 구독하면 Data가 변경될 때마다 UI를 업데이트할 수 있다. 일반 Observable Class와 달리 Live Data는 수명주기를 인식한다. 수명주기 인식을 통해 Activity 수명주기 상태에 있는 앱 컴포넌트 Observer만 업데이트 한다. 관찰자의 수명주기가 STARTED 또는 RESUMED 상태에서만 옵저버에게 데이터 변경을 알린다. LifecycleOwner 인테페이스를 구현하는 객체와 페어링된 관찰자를 등록할 수 있다. 이 관계를 사용하면 관찰자에 대응되는 LifeCycle 객체의 상태가 DESTROYED로 변경될 때 관찰자를 삭제할 수 있다. 특히 Activity와 Fragment가 LiveDa..

    [Android/Java] naver map api

    [Android/Java] naver map api

    Demo 1. Api Key 발급 https://www.ncloud.com/ 2. 내위치 가져오기 해당 앱이 권한이 있어야한다. 안드로이드시스템 설정에서 위치서비스가 켜져있어야 한다. dependency 추가 현재 위치를 얻기위해선 LocationProvider라는 표준 라이브러리를 사용해도 되지만 가볍고 더좋은게 google꺼라고 한다 implementation 'com.google.android.gms:play-services-location:16.0.0' Naver sdk allprojects { repositories { google() mavenCentral() jcenter() // Warning: this repository is going to shut down soon maven { ur..

    [Android/Firebase] Firebase 연동

    [Android/Firebase] Firebase 연동

    0. Package Name, SHA-1 준비 프로젝트 생성후 패키지 네임 복사 SHA-1을 발급 (터미널에서 아래명령어로 발급가능) gradlew singingReport 1. Firebase에서 앱등록 https://console.firebase.google.com/ 앱등록후 준비해둔 패키지 네임과 SHA-1 정보를 넣는다. 2. JSON파일을 다운받아 아래에 나온 경로에 넣는다.(/app아래) google-service.json파일은 증명서 같은 개념으로 이게 있어야 firebase에 접근할 수 있다고 한다. 여기에 여러 API 키가 있다. 3. sdk 추가 4. 끝

    [Android/Java] 지나가는 비행기

    [Android/Java] 지나가는 비행기

    Demo 구성 activity view gif resource - [MainActivity.java] package com.example.recyclerview; import android.app.Activity; import android.os.Bundle; public class MainActivity extends Activity { private PlainAnim pa; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); pa = new PlainAnim(this); setContentView(pa); } } - [PlaneAnim.java] package com.examp..

    [Android/Java] 터치하면 위로올라가는 게임

    [Android/Java] 터치하면 위로올라가는 게임

    Demo 구성 activity view gif resource - [MainActivity.java] 시작화면 package com.example.recyclerview; import android.app.Activity; import android.content.Intent; import android.os.Bundle; import android.view.View; public class MainActivity extends Activity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); } publ..

    [Android/Java] video view 가로 모드

    [Android/Java] video view 가로 모드

    Demo ManiActivity.java package com.example.recyclerview; import android.os.Bundle; import android.widget.MediaController; import android.widget.VideoView; import androidx.appcompat.app.AppCompatActivity; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); V..