일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- firebasefunctions
- 뷰바인딩
- button
- Android
- 안드로이드스튜디오
- 코틀린
- androidstudio
- Activity
- ArrayList
- MaterialButton
- RealtimeDB
- 안드로이드 스튜디오
- OutlinedButton
- BottomSheetDialog
- Kotlin
- EditText
- 밑줄
- ROOM
- nav_graph
- Imageview
- Dialog
- 랜덤ID
- firebase
- ButtonWithButton
- FRAGMENT
- 안드로이드
- textview
- ViewModel
- 팝업액티비티
- lifecyclescope
- Today
- Total
목록안드로이드 (63)
안드로이드 앱 개발
1. dependency를 추가한다. implrmentation "androidx.lifecycle:lifecycle-runtime-ktx:2.2.0" 안드로이드에는 UI thread와 Worker thread가 존재한다고 한다. 예를 들어, Room library를 사용해서 내장 DB에 접근할 때 UI thread에서 메소드를 작동하면 error로 앱이 종료된다. 2. 백그라운드에서 작업되야하는 코드를 작성한다. lifecycleScope.launch(Dispatchers.IO){ //백그라운드 작업 코드 }
//TextView 처럼 edittext.text = "테스트" 일것 같지만 에러가 뜬다. Edittext에 변수 값을 입력하려면 java와 같이 setText()함수를 활용해야한다. ex) contentEdittext.setText(memoContent)
안드로이드 앱을 기획하고 만들다보면 반드시 마주하게 되는 선택의 순간이 있다. 바로 특정 데이터를 데이터를 앱 내부에 저장하고 불러올 것인가 VS 서버에 저장하고 필요할 때마다 불러올 것인가 내부에 저장한다면 네트워크와 연결없이 자유자재로 사용할 수 있다는 장점이 있지만 데이터양이 너무 많이면 앱이 무거워진다는 점, 그리고 앱이 삭제되면 해당 데이터도 같이 삭제된다는 단점이 있다. 서버에 저장한다면 앱의 무거워지는 점은 고려하지 않아도 되고 (아무리 서버에서 정렬 및 필터로 가공된 데이터를 던져준다 하더라도 물리적인 용량이 크다면 어쩔 수 없는듯?) 앱이 삭제되더라도 데이터 접근 권한만 있다면 다시 불러올 수 있다. 그러나 문제는 서버구조를 기획하기 어렵고 (필자는 firebase rtdb사용함에도 불구..
* 속성 공부 offscreenPageLimit은 양 옆에 페이지를 얼마나 미리 만들고 있을 것 인지를 설정해주는 속성이다. 그림 예시 퍼옴 기본 설정값은 1이다.
1. bottomSheetDialog xml 파일을 만든다. 2. bottomSheetFragment를 아래와 같이 만든다. class BottomSheetFragmentCustomer : BottomSheetDialogFragment() { private val mContext: Context? = context override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { // Inflate the layout for this fragment val view = inflater.inflate(R.layout.custom_bottomsheet_addcus, co..
Kotlin을 공부하면서, java에서 사용했던 overridPendingTransition을 찾느라 애먹었다. 자바에서는 startActivity(intent); 이후에 아래 코드를 붙여주면 됐지만 overridePendingTransition(R.anim.horizon_enter, R.anim.fadeout); 코틀린에서는 override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_home_menu) overridePendingTransition(R.anim.horizon_enter, R.anim.fadeout) } override fun onB..
전역 변수에 var fragmentTransaction = fragmentManager.beginTransaction() 선언을 하고 commit()을 한 후에 다시 transaction을 생성해줘야 한다고 한다. example fragmentTransaction.add(R.id.frame_container, fragmentCustomers).commit() fragmentTransaction = fragmentManager.beginTransaction() fragmentTransaction.add(R.id.frame_container, fragmentHome).commit() fragmentTransaction = fragmentManager.beginTransaction() fragmentTrans..
Edittext의 maxlines가 속성이 적용되기 위해서는 반드시 inputType도 설정이 되어야 한다고 함. android:inputType="text" android:maxLines="1"
1. 먼저 edittext에 이미지를 넣으려면 xml 속성에서 android:drawableLeft="@drawable/serach_maingrey" 위 속성을 추가하면 된다. (오른쪽에 넣으려면 drawableRight) However, 이미지 크기가 원본 이미지 그대로 들어가기 때문에 조절이 필요하다. 2. 따라서, drawble에 크기까지 지정한 xml파일을 만든뒤 적용해준다. drawable_left_image_search.xml 3. Edittext에서 정해주기 android:drawableLeft="@drawable/drawable_left_image_search" android:drawablePadding="10dp"
먼저. fragment.kt 파일과 xml을 만들어준다. class FragmentCustomers : Fragment() { private var fragmentCustomersBinding:FragmentCustomersBinding? = null; override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? ): View? { val binding = FragmentCustomersBinding.inflate(inflater, container, false) return binding.root } override fun onDestroyView() { fragmentCusto..