본문 바로가기

android9

[안드로이드] Fragment를 사용할때 요즘 안드로이드를 책으로 보고 공부를 하고 있는데 Fragment를 배울 때 FrameLayout에 transacion을 이용해서 Fragment를 적용시키는 방법을 하고 있었다. 책에서는 FrameLayout의 크기를 따로 정해주지 않아 자동으로 정해지는 크기를 사용했는데, 테스트할 때 화면을 가득 채우는 상황이 발생했다. 책에서는 FrameLayout에 잘 들어가서 딱 맞게 나오는데 나는 왜 이렇게 겹쳐지는지 몰라 검색을 해봤는데, 검색해서 나온 것 그대로 해도 똑같더라. 그래서 혹시나 하는 마음에 크기를 건드려봤는데 정답이었다. FrameLayout의 크기가 일정 크기 이상으로 넘어가면 그냥 Fragment를 다 씌워 버려서 따로 높이를 조정하니 겹치지 않고 잘 나오게 되었다. 대충 임시방편으로 이.. 2022. 8. 22.
[안드로이드] 라이브 데이터 + 데이터 바인딩 알아보기(LiveData + DataBinding) 이번에는 LiveData를 이용한 데이터 바인딩이다. 우리는 저번 포스팅을 통해 DataBinding이 무엇인지 알고 있으니 LiveData에 대해 한번 알아보도록 하자. 만약 DataBinding이 뭔지 모른다면 DataBinding [안드로이드] Databinding 알아보기 저번 MVVM을 알아보고 연습하기 위해 인터넷을 찾아봤는데 Databinding 이란 것도 알아냈다. 생각보다 유용한 거 같아 가져와 봤다. 일단 데이터 바인딩을 쓰는 이유부터 알아보자. 데이터 바인딩을 krapoi.tistory.com LiveData 수명주기를 인식할 수 있는 관찰 가능한 홀더 클래스이다. 근데 이 라이브 데이터라는 친구가 혼자서는 작동을 할 수가 없는데, 그래서 Observer가 필요하다. 내가 라이브 데이.. 2022. 3. 11.
[안드로이드] Databinding 알아보기 저번 MVVM을 알아보고 연습하기 위해 인터넷을 찾아봤는데 Databinding 이란 것도 알아냈다. 생각보다 유용한 거 같아 가져와 봤다. 일단 데이터 바인딩을 쓰는 이유부터 알아보자. 데이터 바인딩을 쓰면 xml파일에 데이터를 넣기 때문에 상대적으로 코드 수 가 적어지게 된다. 또한 findViewId()를 쓰지 않아도 된다. 그리고 이전에 설명한 MVVM패턴 구현에도 유용하기 때문이다. 아, 참고로 구글에서는 findViewId만 쓰지 않을 거라면 차라리 쓰지 말라고 한다. 어쨌든 이러한 이유들로 쓰게 되는 데이터 바인딩에 대해 알아보자. 먼저 gradle을 추가해 줘야 한다. build.gradle이 2개가 있을 건데 빨간 동그라미가 쳐져있는 build를 켜면 된다. 그다음 android 부분에 .. 2022. 3. 9.
[안드로이드/JAVA] 안드로이드로 Wordle 만들어 보기 #2 이제 거의 다 만들어진 거 같다. 이번에 실패한 화면과 성공 화면을 만들어 주었다. 각각 xml 파일을 보여주겠다. activity_fail © 2022 GitHub, Inc. Terms Privacy Security St acitvity_success 그러면 추가된 Activity코드를 보자. FailActivity.java import android.annotation.SuppressLint; import android.content.Intent; import android.content.pm.ActivityInfo; import android.os.Bundle; import android.widget.Button; import androidx.annotation.Nullable; import and.. 2022. 3. 8.
[안드로이드/JAVA] 안드로이드 뒤로가기 2번 입력 이번에 만들어 볼 것은 뒤로 가기를 두 번 입력해 앱을 종료하는 것이다. 먼저 모듈 하나를 만들어 주자. public class BackKey { private long BackKeyPressedTime = 0; private Toast toast; private final Activity activity; public BackKey(Activity activity) { this.activity = activity; } public void showMessage(){ toast = Toast.makeText(activity,"\"뒤로가기\" 버튼을 한번 더 누르시면 종료 됩니다.",Toast.LENGTH_SHORT); toast.show(); } public void onBackPressed(){ if(.. 2022. 3. 6.