본문 바로가기
반응형

Android56

[Android] BuildConfig 오류 Cannot resolve symbol 'BuildConfig' 해결 Cannot resolve symbol 'BuildConfig' Activity 에서 앱 최초 생성했을 때나, Build > Clean Project 하면 발생하는데요, 이럴땐, 빌드하면 됩니다.. 오류없이 빌드 되고 나면, BuildConfig 를 못찾는다는 메시지는 안나옵니다. Custom Class 에서 import your.package.name.BuildConfig; 하시면 됩니다. 주의! 다른 라이브러리의 BuildConfig 를 import 하면 안됩니다. 저렇게 되면 rootbeer 라는 버전명을 가져오겠네요 ㄷㄷ 참고 소스오류도 아닌데... 잘못된게 없는데... 뭔가 이상하다.. 싶으면 clean -> build (make project) 한번 해보시면 해결되는 경우가 간혹 있습니다.. ㅋ 2022. 3. 4.
[Android] Java 에서 Kotlin 으로 넘어가기 4. Fragment Kotlin Fragment 사용하기 우선 Activity 와 Fragment 의 차이는 lifecycle 을 봐도 알수가 있습니다. Activity LifeCycle Fragment 의 LifeCycle 요약하면, Activity 는 무거움. Fragment 가벼움. 기능에 따라 다르겠지만, 예를들어 5개의 Activity로 만든 앱 보다는 1개의 Activity 와 5개의 Fragment로 만든 앱이 더 가볍고 (화면전환이) 빠릅니다. Fragment 만들기 fragment package를 만들어서 fragment 를 관리합니다. (프로젝트가 크다면, fragment 들을 기능별로 나누는게 좋습니다) 그리고 Empty Fragment 생성. 기본적으로 생성되는 코드는 아래와 같습니다. 파라메터 받는 .. 2022. 2. 27.
[Android] Java 에서 Kotlin 으로 넘어가기 2. OnClick Android 를 Java 로만 개발했었는데, Kotlin 으로 갈아타기 위해 이것저것 테스트 해보며 필요한것만 남기려고 포스팅합니다. 따라하기가 아닌, 한번 쓱~ 훑어보듯이 보면 좋을듯 합니다. 요약 android java 와 방법은 같음. 약간의 문법 차이가 있음 (당연한 소리를..) 1. button 에 setOnClickListener 사용하기 val testBtn: Button = findViewById(R.id.main_test_button) testBtn.setOnClickListener(View.OnClickListener { // testBtn.setText("Hello~ Bryan!") // 가능하지만, 아래 줄 처럼 권장 testBtn.text = "Hello~ Bryan!" }); .. 2022. 2. 23.
[Android] Java 에서 Kotlin 으로 넘어가기 1. findViewById Android 를 Java 로만 개발했었는데, Kotlin 으로 갈아타기 위해 이것저것 테스트 해보며 필요한것만 남기려고 포스팅합니다. 따라하기가 아닌, 한번 쓱~ 훑어보듯이 보면 좋을듯 합니다. 요약 Java TextView textView = findViewById(R.id.main_test_button); Kotrlin 1) val textView: TextView = findViewById(R.id.main_test_button) 2) val textView = findViewById(R.id.main_test_button) 3) ViewBinding 사용 ★ 컴포넌트 가져오기 이렇게 있다면, val testTv = findViewById(R.id.main_test_textview); 이렇게 하거.. 2022. 2. 23.
[Android] api29 이상. MediaStore DATE_MODIFIED 을 날짜 형식으로 가져오기 Android 11 / API 29 이전 버전의 안드로이드에서 Media 데이터를 READ/WRITE 하는 방식이 변경됐습니다. 관련 내용은 여기 에서 확인하시고요. 참, 귀찮네요. 개발한 앱을 다 수정해야되다니.. 그 중에서 일단 미디어 파일을 가져오는걸 바꾸는 중인데, 수정된 날짜를 가져오는 것에 대해서 남기려고 합니다. 일단 컬럼 index 를 찾아야겠죠. 이건 한번만 호출하고 cursor.moveToNext() 를 하면서 쓰면 됩니다. int modColumn = cursor.getColumnIndexOrThrow(MediaStore.Video.Media.DATE_MODIFIED); while (cursor.moveToNext()) { // 생략 long modDate = cursor.getLon.. 2020. 9. 12.
[Android] (androidx) Vertical SeekBar (세로 Seekbar) 이런 Vertical SeekBar 와 ChangeEvent 를 만들어보겠습니다. 이전 버전의 android 에서는 단순히 Seekbar 를 rotate 만 하면 됐나봅니다. 샘플 소스들을 찾아보면 rotate 하라는 말 밖에 없네요. 따라 해봤는데 아래와 같이 나옵니다. Try 1. 이 화면의 layout 은 Background 가 Rotation 기준으로 나옵니다. layout 은 width, height 가 그대로 나오는데요. 그리고 이상한건, Seekbar 의 길이가 아주 짧다는겁니다. 여기서 width 와 height 를 바꿔볼까요? Try 2. 이 layout 은 아래와 같습니다. 이것도 좀 이상합니다. left_toLeftOf = parent 로 했는데 왼쪽으로 안붙네요. width 가 ma.. 2020. 7. 22.
[Android] List 를 String Join 할때 사용 팁 String Join join 은 다음과 같은 배열이 있을 때 ["hello", "~", "bryan", "!"] 특정 delimiter 로 이어 붙혀서 String 으로 만들어 줍니다. 예를들면 아래와 같이 할수있죠. API O 이상만 가능하도록 Add.. 나 Surround.. 하면 사용 가능합니다. 결과는 "hello,~,bryan,!" 라는 문자열이 되겠지요. 하지만 API 버전에 관계 없이 사용하려고 하면 TextUtils 을 사용하면 됩니다. String result = TextUtils.join("#", list); // result 의 값은 "hello#~#bryan#!" 2020. 5. 29.
[Android] Calling startActivity() from outside of an Activity 오류 해결하기 Calling startActivity() from outside of an Activity context requires the FLAG_ACTIVITY_NEW_TASK flag activity 가 아닌곳에서 호출하려면 FLAG_ACTIVITY_NEW_TASK flag 가 필요함, 뭐 이런 내용입니다. 전 RecyclerView 의 item 클릭 시 Activity 를 시작하려고 했습니다. # 오류나던 코드 Intent intent = new Intent(getContext(), SomeActivity.class); intent.putExtra(PARAM_LIST, itemList); getContext().startActivity(intent); 저 flag 만 추가하면 됩니다. # 수정 후 코드 I.. 2020. 5. 26.
[Android] RecyclerView 의 onCreateViewHolder 가 호출되지 않을 때 oncreateviewholder not called 확인해봐야 할 사항 1 @Override public int getItemCount() { return 0;// 잘못된 설정 } @Override public int getItemCount() { return itemList.size();// list 의 size 로 바꿔주세요. } 확인해봐야 할 사항 2 recyclerView = view.findViewById(R.id.custom_horizontal_recycler_view); recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); 저 같은 경우 2번에 둘째줄이 빠져있었더라고요. 추가하니까 잘 호출 됩니다. 참고로 horizon.. 2020. 5. 26.
[Android] File 체크 File exists() 안드로이드 파일 존재 여부 체크 File 의 exists() 메소드를 사용하면 됩니다. String filePath = "your/file/path"; if(new File(filePath).exists()) { // 파일 있음 }else{ // 파일이 없음 } 간단하쥬? 2020. 5. 4.
728x90
반응형