빌드 속도 개선

build.gradle.kts  에서 buildTypes { debug { splits . abi . isEnable = false splits . density . isEnable = false aaptOptions . cruncherEnabled = false } } 추가하기 gradle.properties # 병렬 빌드 활성화 org.gradle.parallel = true # Gradle 데몬 사용 org.gradle.daemon = true # 캐시 사용 org.gradle.caching = true # Gradle 워커 개수 제한 org.gradle.workers.max = 4 # 빌드 스캔 비활성화 ( 사용 안 할 경우 ) android.enableBuildScan = false 추가하기

인터페이스로 데이터 전달 (콜백)

인터페이스 정의 public interface dataCallBack { String callBack ( String value ) ; // 어댑터가 전달한 데이터를 입력받음 } 전달하려는 클래스 adapterMenuSelect.class private DataCallBack dataCallBack ; public void dataCallBack ( DataCallBack listener ) { this . dataCallBack = listener ; } if ( dataCallBack != null ) { dataCallBack .callBack ( arrayList .get ( holderPosition ) .toString () ) ; // ← 콜백 호출 } 전달 받으려는 엑티비티 또는 프레그먼트 adapterMenuSelect .dataCallBack ( new DataCallBack () { @Override public String callBack ( String value ) { Log. d ( "Fragment" , "Adapter 로부터 받은 값 : " + value ) ; return " 처리완료 : " + value ; } } ) ;

라이브템플릿 - 변수

  private RecyclerView recyclerView ; private $adapter$ adapter ; // 아답터 이름 private RecyclerView.LayoutManager layoutManager ; private ArrayList< $model$ > arrayList ; // 모델이 있을 경우 ArrayList< 모델 > arrayList recyclerView = mBinding. $xml_id$ ; layoutManager = new LinearLayoutManager( $context$ ) ; recyclerView.setHasFixedSize( true ) ; layoutManager.setItemPrefetchEnabled( false ) ; recyclerView.setLayoutManager(layoutManager) ; arrayList = new ArrayList<>() ; adapter = new $adapter$ ( $context$ , arrayList) ; recyclerView.setAdapter(adapter) ; firebaseDatabase = FirebaseDatabase.getInstance() ; databaseReference = firebaseDatabase.getReference() ; databaseReference.addValueEventListener( new ValueEventListener() { @Override public void onDataChange(@NonNull DataSnapshot snapshot) { arrayList.clear() ; for (DataSnapshot dataSnapshot : snapshot.getChildren()) { $model_class$ itemModels = dataSnapshot.getValue( $model_class$ . cla...

라이브템플릿 - 리사이클러뷰 아답터

import android.view.LayoutInflater ; import android.content.Context ; import android.view.View ; import android.view.ViewGroup ; import android.widget.TextView ; import androidx.annotation.NonNull ; import androidx.recyclerview.widget.RecyclerView ; import java.util.ArrayList ; public class $CLASS_NAME$ extends RecyclerView.Adapter< $CLASS_NAME$ .CustomViewHolder> { private Context context ; private ArrayList< $model$ > arrayList ; // 모델이 있을 경우 ArrayList< 모델 > arrayList public $CLASS_NAME$ (Context context , ArrayList< $model$ > arrayList) { this .context = context ; this .arrayList = arrayList ; } @NonNull @Override public $CLASS_NAME$ .CustomViewHolder onCreateViewHolder(@NonNull ViewGroup parent , int viewType) { View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_view_item_unique , parent , false ) ; CustomViewHolder holder = new CustomViewHolder(view) ; return ho...

다이얼로그

style.xml에서 <!-- styles.xml --> <style name ="TransparentDialog" parent ="Theme.AppCompat.Dialog" > <item name ="android:windowBackground" > @android:color/transparent </item> <item name ="android:windowIsFloating" > true </item> <item name ="android:windowNoTitle" > true </item> </style> onCreate에서 시작 부분에서 setTheme ( R.style. TransparentDialog ) ; requestWindowFeature ( Window. FEATURE_NO_TITLE ) ; setFinishOnTouchOutside ( true ) ; 다이얼로그로 하고, 타이틀 없애고, 터치 금지 getWindow () .setLayout ( ViewGroup.LayoutParams. MATCH_PARENT , ViewGroup.LayoutParams. WRAP_CONTENT ) ; getWindow () .setBackgroundDrawableResource ( android.R.color. transparent ) ; adjustDialogSize () ; private void adjustDialogSize () { // 화면 크기 가져오기 DisplayMetrics displayMetrics = new DisplayMetrics () ; getWindowManager () .getDefaultDisplay () .getMetrics ( displayMetrics ) ; int screenWidth =...

앱 재시작

PackageManager packageManager = getPackageManager () ; Intent intent = packageManager.getLaunchIntentForPackage ( getPackageName () ) ; ComponentName componentName = intent.getComponent () ; Intent mainIntent = Intent. makeRestartActivityTask ( componentName ) ; startActivity ( mainIntent ) ;