Android

LiveData (android developers)

    LiveData Overview   https://developer.android.com/topic/libraries/architecture/livedata     LiveData 는 관찰 가능한 데이터 홀더 클래스입니다. 일반적인 observable 와 다르게 LiveData 는 수명 주기를 인식합니다. 즉, 액티비티, 프래그먼트, 서비스와 같은 다른 앱 컴퍼넌트들의 수명주기를 고려합니다. 이러한 수명 주기 인식을 통해 LiveData는 active 수명주기 상태에 있는 앱 컴퍼넌트 observer 만을 업데이트합니다.   LIveData 는 수명주기가 STARTED 또는 RESUMED 상태일 때 observer (Observer class) 를 active 상태로 파악합니다. LiveData 는 active 상태인 observer 에게만 업데이트를 알립니다.     Work with LiveData objects   1. 특정 데이터를 담은 LiveData 객체를 생성합니다. 보통 ViewModel 클래스에…

Read More
Android

겜팔이의 안드로이드 세뇌교실 (안드로이드)

액티비티 인텐트 뷰 – Widget, Layout, Event Fragment ViewPager, TabLayout SharedPreferences 동적 뷰 생성 (ArrayList 이용) RecyclerView Thread, Log Glide 서버-클라이언트, Okhttp, JSON 카메라 최종 10강 완결 소스 UUID 사용     https://www.youtube.com/playlist?list=PLG9ohJAOA2PBtTBlGkmzk6_MuaUQBg_pw     https://github.com/g82/Anstagram/releases     액티비티   윈도우의 창과 같음. UI를 보여주고, 행동도 함.   package com.example.mytestapp1;   import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.util.Log;   public class MainActivity extends AppCompatActivity {   public static final String TAG = “MainActivity”; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); }   @Override protected void onStart() { super.onStart(); Log.d(TAG, “onStart”); }…

Read More
Android

겜팔이의 안드로이드 세뇌교실 (자바)

  자료형 배열, 반복문(for, while) 클래스, 상속 예외 인터페이스     https://www.youtube.com/playlist?list=PLG9ohJAOA2PBtTBlGkmzk6_MuaUQBg_pw     자료형   public class HelloWorld{   public static void main(String []args){ int number = 100; long myBigNumber = 123456123456L; String myString = “hihihi”; char myChar = ‘A’; float myFloat = 123.456f; System.out.println(number); System.out.println(myBigNumber); System.out.println(myString); System.out.println(myChar); System.out.println(myFloat); System.out.println(myString + number); } }   ——————————————————–   100 123456123456 hihihi A 123.456 hihihi100           배열, 반복문(for, while)   import java.util.Random;   public class HelloWorld{   public static void main(String []args){ Random random = new Random();…

Read More
Android

View Binding, Data Binding (android developers)

  View Binding Data Binding Library   View Binding https://developer.android.com/topic/libraries/view-binding#java   Data Binding https://developer.android.com/topic/libraries/data-binding#java   View Binding     모듈 레벨 build.gradle 파일   android { … buildFeatures { viewBinding true } }       바인딩 클래스를 만들지 않으려면 루트 뷰에다가 추가 <LinearLayout     …     tools:viewBindingIgnore=”true” >     … </LinearLayout>     바인딩 클래스 자동 생성 (클래스 이름은 camel case 그리고 뒤에 Binding이 붙음) result_profile.xml -> ResultProfileBinding   <LinearLayout … >     <TextView android:id=”@+id/name” />     <ImageView android:cropToPadding=”true” />     <Button android:id=”@+id/button”…

Read More
Android

Notifications (android developers)

  Notifications https://developer.android.com/guide/topics/ui/notifiers/notifications       Set the notification content setSmallIcon() : 작은 아이콘 (필수) setContentTitle() : 제목 setContentText() : 내용 setPriority() : 안드로이드 7.1 이하 (안드로이드 8.0 이상은 channel importance 사용) NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID)         .setSmallIcon(R.drawable.notification_icon)         .setContentTitle(textTitle)         .setContentText(textContent)         .setPriority(NotificationCompat.PRIORITY_DEFAULT);   채널 ID 는 안드로이드 8.0 (API 26) 부터 필수. 그 이하는 무시된다. 내용은 1줄만 가능하다. 2줄 이상 쓰려면 setStyle() 이용. NotificationCompat.Builder builder = new NotificationCompat.Builder(this, CHANNEL_ID)         .setSmallIcon(R.drawable.notification_icon)…

Read More
Android

될 때까지 안드로이드 정리 (오준석의 생존코딩) 6

  ActionSendExam FragmentExam HttpNetworkExam        1. ActionSendExam   <EditText android:id=”@+id/message_edit” android:layout_width=”match_parent” android:layout_height=”wrap_content” android:hint=”메시지” /> <Button android:layout_width=”wrap_content” android:layout_height=”wrap_content” android:onClick=”sendMessage” android:text=”전달하기” />   public void sendMessage(View view) { EditText messageEditText = (EditText) findViewById(R.id.message_edit); Intent intent = new Intent(Intent.ACTION_SEND); intent.setType(“text/plain”); intent.putExtra(Intent.EXTRA_TEXT, messageEditText.getText().toString()); // 처리할 수 있는 액티비티가 있으면 그 액티비티를 실행하라 if (intent.resolveActivity(getPackageManager()) != null) { startActivity(intent); } }      2. FragmentExam   public class ColorFragment extends Fragment { private int mColor = Color.BLUE; private TextView mHelloTextView; public ColorFragment() { // Required empty public constructor } @Override public View onCreateView(LayoutInflater…

Read More
Android

될 때까지 안드로이드 정리 (오준석의 생존코딩) 5 강의 자료

  될 때까지 안드로이드 1장 – 안드로이드 앱 개발 준비하기 될 때까지 안드로이드 2장 – 첫 번째 앱 만들기 될 때까지 안드로이드 3장 – 뷰와 뷰그룹 될 때까지 안드로이드 4장 – 자주 사용하는 뷰, 유용한 뷰 될 때까지 안드로이드 5장 – 화면에 뷰를 수놓는 방법 될 때까지 안드로이드 6장 – 안드로이드는 액티비티로부터 될 때까지 안드로이드 7장 – 인텐트와 인텐트 필터 될 때까지 안드로이드 8장 – 메뉴 구현하기 될 때까지 안드로이드 9장 – 웹뷰- 웹 페이지 표시하기 될 때까지 안드로이드 10장 – 화면 제약을 극복하는 방법 될 때까지 안드로이드 11장 –…

Read More
Android

안드로이드 스튜디오 도움되는 정보들 1

  Android – myLooper() vs getMainLooper() how to use postDelayed() correctly in android studio? How to use the SwipeRefreshLayout? Android sample bluetooth code to send a simple string via bluetooth How to add dividers and spaces between items in RecyclerView? Adding button action in custom notification Downloading a website to a string Android Handler Tutorial start activity with left to right mode material design FAB speed dial menu tutorial (Code with Joyce)       Android – myLooper() vs getMainLooper()   getMainLooper() – Returns the application’s main looper, which lives…

Read More
Android

Android Developers

    Create a List with RecyclerView     Create swipe views with tabs using ViewPager2 https://developer.android.com/guide/navigation/navigation-swipe-view-2     Slide between fragments using ViewPager2 https://developer.android.com/training/animation/screen-slide-2     Adding Swipe-to-Refresh To Your App (SwipeRefreshLayout) https://developer.android.com/training/swipe/add-swipe-interface     Build and display a pop-up message (Snackbar) https://developer.android.com/training/snackbar/showing       Bluetooth overview https://developer.android.com/guide/topics/connectivity/bluetooth     Add the app bar https://developer.android.com/training/appbar     Menus https://developer.android.com/guide/topics/ui/menus       Create a List with RecyclerView https://developer.android.com/guide/topics/ui/layout/recyclerview     implementation ‘androidx.recyclerview:recyclerview:1.1.0’   activity_main.xml <LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android” xmlns:app=”http://schemas.android.com/apk/res-auto” xmlns:tools=”http://schemas.android.com/tools” android:layout_width=”match_parent” android:layout_height=”match_parent” android:orientation=”vertical” tools:context=”.MainActivity3″> <androidx.recyclerview.widget.RecyclerView android:id=”@+id/my_recycler_view” android:scrollbars=”vertical” android:layout_width=”match_parent” android:layout_height=”match_parent”/> </LinearLayout>…

Read More