Android 썸네일형 리스트형 [Retrofit] Non-body HTTP method cannot contain @Body 문제 : Non-body HTTP method cannot contain @Body 이유 : @GET을 쓰는 GET 메서드에는 파라미터에 @Body 태그를 쓸 수 없다. 해결방안 --> 클라이언트에서는 파라미터에 @Query 태그를 서버에서는 Cotroller의 @GetMapping 메서드에는 @RequestParam을 사용하여 파라미터를 주고 받는다. 더보기 Callback 함수와 runOnUiThread Callback 함수 안에서는 UI를 수정하기 위해 runOnUiThread를 사용해야 한다. 만약 runOnUiThread 블록 안에서 UI 업데이트를 실행하지 않으면 코드가 씹히는 현상이 발생한다. Callback 함수는 MainThread가 아닌 쓰레드에서 실행되나 봄~~ 더보기 안드로이드에 라이브러리 파일을 추가하는 두 가지 방법 1. libs 폴더의 모든 라이브러리를 추가 repositories { mavenCentral() flatDir { dirs 'libs', 'aars' } } 2. libs 폴더의 개별 라이브러리 추가 implementation files('libs/Abcd.jar') 더보기 [Android] Only the original thread that created a view hierarchy can touch its views 문제원인: Non-UI Thread에서 UI 관련 작업을 할 때 발생하는 오류이다. 해결방법: UI Thread를 이용하여 UI 관련 작업을 한다. if (Looper.myLooper() != Looper.getMainLooper()) { mContext.runOnUiThread(() -> { // UI 관련작업을 수행한다 }); } 더보기 [Android] SDK 23 Apache HttpClient SDK 23 이상에서 Apache HttpClient는 Deprecated되어 Retrofit/Volley 사용 고려 필요 더보기 [Java] String.equals() 주의점 String 형의 두 글자를 비교할 때 equals() 메서드를 사용합니다. 변수와 상수인 두 String을 비교할 때는 상수를 먼저 쓰는 것이 좋습니다. 변수가 null이면 NullPointerException을 일으킬 수 있지만 상수인 String은 개발자가 컨트롤 할 수 있기 때문입니다. 1 2 3 4 5 6 7 8 9 final String CONSTANT_WORD = "example word"; String variableWord; // 좋은 예 if (CONSTANT_WORD.equals(variableWord)) {...} // 나쁜 예 if (variableWord.equals(CONSTANT_WORD)) {...} cs 빈 스트링과 비교하는 형태도 자주 쓰이는데 "".equals(vari.. 더보기 [Android] DP -> PX 변환 1 2 3 private int dpToPx(int dp) { return (int) (dp * getResources().getDisplayMetrics().density); } Colored by Color Scripter cs 소스코드 상에서(Programatically) View를 수정해야 할 때가 있다. XML파일에서는 px보다는 dp를 더 빈번하게 사용하는데, 소스코드 상에서 View를 수정할 때는 대부분 px단위로 값을 설정해줘야 한다. 이럴 때 위와 같이 dp -> px로 변환하는 메서드를 사용하여 원하는 DP값을 View에 설정해줄 수 있다. 더보기 [Android] Fragment에서 Activity 접근하기 안드로이드 개발을 하다보면 프래그먼트에서 액티비티를 접근해야 할 때가 있습니다. 이번 포스트에서는 어떻게 하면 프래그먼트에서 액티비티에 접근할 수 있는지를 알아보겠습니다. Bad: Static Context 사용 필자는 2020년 초에 프로그래머스에서 주관한 라인플러스 앱개발 챌린지에 참여한 적이 있습니다. 당시에 주어진 과제는 이미지 첨부가 가능한 노트앱을 만드는 것이었습니다. MainActivity를 노트 리스트로 만들고, 노트작성 화면을 또 다른 액티비티의 프래그먼트로 만들었습니다. 유저가 새노트를 작성 후 자동적으로 노트 리스트로 돌아오는데 유저는 업데이트된 리스트를 보아야 합니다. MainActivity에 있는 리스트 Adapter에 접근하기 위해 제가 사용한 방법은 아래 코드와 같이 MainA.. 더보기 이전 1 다음