일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 안드로이드 유닛 테스트 예시
- 서비스 vs 쓰레드
- ANR이란
- 안드로이드 유닛테스트란
- 2022 플러터 안드로이드 스튜디오
- 서비스 쓰레드 차이
- ar vr 차이
- rxjava cold observable
- rxjava disposable
- Rxjava Observable
- rxjava hot observable
- 스택 자바 코드
- android retrofit login
- 객체
- 큐 자바 코드
- 플러터 설치 2022
- jvm이란
- 2022 플러터 설치
- android ar 개발
- 스택 큐 차이
- 안드로이드 os 구조
- 클래스
- 안드로이드 레트로핏 crud
- 안드로이드 라이선스
- 안드로이드 유닛 테스트
- jvm 작동 원리
- 안드로이드 라이선스 종류
- 안드로이드 레트로핏 사용법
- 멤버변수
- 자바 다형성
- Today
- Total
목록Android (402)
나만을 위한 블로그
이 에러는 setText() 안에 들어가는 인자를 String이 아닌 다른 자료형의 값을 넣었을 때 발생하는 에러다. setText()의 인자를 보면 int형 데이터도 받는다고 나와 있지만, 막상 넣으면 이런 에러를 뿜어댄다. 해결법은 변수에 담긴 값이 String이 되도록 캐스팅을 시켜준 다음, 캐스팅된 변수를 setText()의 인자로 넣어주면 된다. 이 방법은 여러가지가 있지만 일단 생각나는 건 1. (변수명 + "") 형태로 사용 2. Integer.toString(변수명); 3. String str = String.valueOf(변수명); 4. 변수명.toString(); 이 정도의 방법이 생각난다. 아무튼 String으로 바꿔서 넣으면 저 에러는 나타나지 않는다.

업데이트 내역 21.10.31) 코틀린 사용법 추가 보통 로그를 찍을 때는 Log.e, Log.d 등을 사용한다. 이렇게 하면 가로로 로그 데이터들이 출력되는데, 이 로그를 좀 더 이쁘게 볼 수 있는 방법이 있다. 제목에 쓴 Logger라는 라이브러리인데, 로그가 이렇게 출력된다. JSON 값도 형식에 맞게 로그캣에 출력해주고 그 외 확인하고 싶은 메시지들도 좀 더 보기 편하게 출력된다. 사용법은 먼저 앱 수준 gradle에 의존성을 하나 추가해준다. implementation 'com.orhanobut:logger:2.2.0' 그 다음 액티비티의 onCreate() 안에 아래의 코드를 넣어준다. Logger.addLogAdapter(new AndroidLogAdapter()); 이러면 끝났다. 이제 로..
리사이클러뷰를 구현하면 처음에는 아이템 간에 구분선이 없어서 아이템 간의 구분이 한순간 헷갈릴 때가 있다. 이럴 때는 아이템 사이에 구분선을 넣도록 자바 파일에 코드를 한 줄 추가해주면 아이템 별 하단에 구분선이 생겨난다. recyclerview.addItemDecoration(new DividerItemDecoration(getApplicationContext(), DividerItemDecoration.VERTICAL)); 이것만 넣으면 끝난다. 그리고 setLayoutManager()를 통해 리사이클러뷰의 레이아웃 매니저도 정해주면 된다. 만약 getApplicationContext() 때문에 에러가 난다면 'XXXActivity.this'처럼 해당 리사이클러뷰가 있는 액티비티의 이름과 this를 ..

이번 글에선 탭 레이아웃과 뷰페이저, 프래그먼트를 써서 좌우로 화면 넘기기 예제를 구현할 것이다. 먼저 앱 수준 gradle에다가 의존성을 하나 추가해준다. implementation 'com.google.android.material:material:1.3.0-alpha01' 뷰페이저, 카드뷰 등의 머티리얼 디자인을 쓰기 위해 필요한 의존성이다. 위의 의존성을 입력해주면 한방에 다 쓸 수 있다. 그 다음으로 MainActivity의 xml 파일을 수정해준다. 예제기 때문에 간단하다. 그 다음 탭 별 페이지로 설정할 프래그먼트를 만들어준다. 프래그먼트를 만들 줄 모른다면 아래 그림을 따라가면 된다. 자바 파일들이 있는 패키지를 우클릭한 다음 메뉴를 타고타고 들어가면 된다. 저 메뉴를 누르면 이 화면이 나..

햄버거 버튼과 Title, 돋보기 버튼 등이 놓이는 이 곳을 보통 액션바(ActionBar)라고 부른다. 이곳은 특별히 설정해놓지 않으면 /res/values 경로의 strings.xml에 있는 app_name 값(프로젝트명)으로 자동 설정되어, 어떤 액티비티로 이동하더라도 app_name 값이 나온다. 이 글에선 이곳의 텍스트를 내 마음대로 커스텀하는 법을 포스팅하려 한다. 먼저 프로젝트를 임의로 하나 만들었다. 그 다음 텍스트뷰 내용만 수정한 다음 빌드하면 이런 모양의 앱이 빌드된다. 그런데 이 액티비티에는 회원가입을 할 수 있도록 EditText를 놓고 버튼도 넣고 이것저것 넣을 거라, 저 ActionBarTest란 이름을 없애고 '회원가입'이란 텍스트를 나오게 해서 사용자가 알아보기 쉽게 하고 싶..
Uri를 String으로 바꾸기 Uri uri; String str = uri.toString(); String을 Uri로 바꾸기 String str = "문자열"; Uri uri = Uri.parse(str);
액티비티에서 토스트를 쓰던 것처럼 쓰레드에서도 액티비티에 토스트를 띄우려고 할 때 발생하는 에러다. 아래처럼 토스트 코드를 핸들러로 감싸주면 해결된다. Handler handler = new Handler(Looper.getMainLooper()); handler.postDelayed(new Runnable() { @Override public void run() { Toast.makeText(ChattingRoomActivity.this, "Sender : 서버와 연결이 끊어졌습니다", Toast.LENGTH_SHORT).show(); } }, 0);
레트로핏 객체를 생성하는 ApiClient를 건드리다가 마주친 에러다. 이 에러는 OkHttp3 의존성을 앱 수준 gradle에 추가 시 버전을 맞춰주지 않았기 때문에 생기는 에러다. 레트로핏이 converter-gson, converter-scalars 의존성이 있는 것처럼 OkHttp3에도 okhttp-urlconnection과 logging-interceptor 등 별도의 의존성들이 있다. 이것들의 버전을 마구잡이로 설정 시 제목과 같은 에러가 발생한다. 해결책은 버전들을 맞춰주면 된다. 내 경우는 이렇게 써서 해결했다. implementation("com.squareup.okhttp3:okhttp:3.4.2") implementation 'com.squareup.okhttp3:okhttp-urlc..

아래 클래스들을 만든 후 매니페스트의 태그 바로 아래에 태그 만들어야 함 // MyFirebaseMessagingService.java public class MyFirebaseMessagingService extends FirebaseMessagingService { private static final String TAG = "FCM"; private static int count = 0; @Override public void onNewToken(@NonNull String s) { super.onNewToken(s); Log.e(TAG, "onNewToken() : " + s); } @Override public void onMessageReceived(@NonNull RemoteMessage r..

FCM : 파이버베이스 클라우드 메시징의 이니셜이다. 이전에 GCM(구글 클라우드 메시징)이란 이름이었고 현재는 안드로이드, 아이폰, 웹 앱의 메시지와 메시지 알림을 위한 크로스 플랫폼 클라우드 솔루션, 현재 무료로 사용 가능, GCM 웹 사이트는 FCM을 새 버전의 GCM으로 정의한다. 앱에서 푸시 알람을 구현하는 방법 중 하나가 FCM이다. 이번에 구현하면서 완료했기 때문에 과정을 정리하려 한다. 먼저 안드로이드 프로젝트에 파이어베이스를 연동시켜야 한다. 먼저 파이어베이스 콘솔에 들어간다. 구글 아이디로도 사용 가능하니 아직 계정이 없다면 대충 회원가입해준다. 그 다음 프로젝트 추가를 누른다. ※ 이 사이트의 UI는 자주 바뀐다. 바뀌어도 눌러야 할 버튼은 눈에 잘 띄는 곳이나 여기 있지 않을까? 하..