안드로이드 자바523 [Java][Android] SpannableString 로 TextView 특정 단어만 색 바꾸기 & 클릭 이벤트 주기 안녕하세요, 안드로이드 앱을 만들다 보면 TextView 안의 특정 단어에만 색을 입히거나, 클릭 이벤트를 부여하고 싶을 때가 있습니다.예를 들어, 서비스 약관 동의 문장에서 “약관 보기” 같은 텍스트만 파랗게 하고 클릭 가능하게 만들고 싶을 때가 있죠. 이럴 때 사용할 수 있는 기능이 바로 SpannableString입니다.이 글에서는 SpannableString을 활용하여 TextView의 일부만 색칠하고, 클릭 이벤트를 설정하는 예제를 만들어보도록 하겠습니다. MainActivity.javapublic class MainActivity extends AppCompatActivity { TextView textView; @Override protected void onCreate.. 2025. 4. 13. [Java][Android]Web3j 활용해 지갑 주소 생성하기 오늘은 web3j 라이브러리를 활용하여 지갑주소 생성하는 예시를 만들어 보겠습니다. 라이브러리 준비 및 그래들 설정=> web3j는 자바 17의 record 기능을 활용하기에 자바17의 기능을 사용할 수 있도록 app 수준 build.gradle 파일에서 위 이미지와 같이 설정해주세요.=> web3j는 Bouncy Castle, Jackson, OkHttp, RxJava, WebSocket 라이브러리들에 의존하는 라이브러리 입니다. 이에 따라web3j 포함 필요한 라이브러리들을 추가해주세요. https://github.com/LFDT-web3j/web3j?tab=readme-ov-file GitHub - LFDT-web3j/web3j: Lightweight Java and Android library.. 2025. 4. 11. [Java][Android] Timer 클래스 활용해 카운트 작업 하기 안녕하세요오늘은 Timer 클래스를 활용해 카운트 작업을 해보도록 하겠습니다.Timer 클래스는 반복적인 작업을 할 때 유용하게 활용이 가능합니다. 전체 코드입니다. MainActivity.javapublic class MainActivity extends AppCompatActivity { private TextView textTimer; private Button btnStart; private Timer timer; private int tickCount = 0; private Handler handler = new Handler(); // UI 갱신용 @Override protected void onCreate(Bundle savedInstanceState) { super.onC.. 2025. 4. 8. [Java][Android] BottomSheet에 CalendarView띄워서 날짜 선택하기 안녕하세요, 오늘은 BottomSheet에 CalendarView띄워서 날짜를 선택하는 예제를 만들어보도록 하겠습니다. MainActivity.javapublic class MainActivity extends AppCompatActivity { private Button btnShowBottomSheet; private TextView tvMainSelectedDate; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btnShowBotto.. 2025. 4. 6. [Java][Android]Web3j 활용해 키쌍 생성하기 오늘은 web3j 라이브러리를 활용해 private key와 public key 키쌍을 생성하는 간단한 예시를 만들어 보겠습니다. 라이브러리 준비 및 그래들 설정=> web3j는 자바 17의 record 기능을 활용하기에 자바17의 기능을 사용할 수 있도록 app 수준 build.gradle 파일에서 위 이미지와 같이 설정해주세요.=> web3j는 Bouncy Castle, Jackson, OkHttp, RxJava, WebSocket 라이브러리들에 의존하는 라이브러리 입니다. 이에 따라web3j 포함 필요한 라이브러리들을 추가해주세요. https://github.com/LFDT-web3j/web3j?tab=readme-ov-file GitHub - LFDT-web3j/web3j: Lightweight .. 2025. 4. 4. [Java][Android] MotionLayout 활용하기 안녕하세요오늘은 MotionLayout을 활용해보도록 하겠습니다.MotionLayout은 UI간 애니메이션과 전환을 부드럽게 표현할 수 있는 레이아웃입니다. 우선 MotionLayout xml을 추가해줘야합니다. res/xml/scene.xml 에다가 MotionScene 을 정의해줘야합니다. 전체 코드입니다. res/xml/scene.xml activity_main.xml 시연 영상입니다. 2025. 4. 1. [Java][Android] ChipGroup에 Chip 동적 추가하기 (+ 버튼) 안녕하세요, 오늘은 ChipGroup 에 +버튼을 만들고, 동적으로 Chip 을 추가하는 예제를 만들어보도록 하겠습니다. activity_main.xml MainActivity.javapublic class MainActivity extends AppCompatActivity { private ChipGroup chipGroup; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); chipGroup = findViewById(R.id.chipGro.. 2025. 3. 30. [Java][Android] CountDownTimer 활용해 간단한 타이머 만들기 안녕하세요오늘은 CountDownTimer를 활용해서 간단한 타이머 기능을 구현해보겠습니다.CountDownTimer를 사용하면 카운트할 시간과 호출간격만 입력하면 간편하게 타이머를 구현할 수 있습니다. 전체 코드입니다. activity_main.xml MainActivity.javapublic class MainActivity extends AppCompatActivity { private TextView tvTimer; private Button btnStart; private CountDownTimer countDownTimer; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(save.. 2025. 3. 25. [Java][Android] 다크모드 적용하기 안녕하세요오늘은 다크모드 적용 방법에 대해서 알아보도록 하겠습니다. 우선, 다크모드를 적용 하려면values/themes/themes.xmlvalues/themes/themes.xml (night)이 두개의 파일에서 색상에 대한 설정을 해줘야 합니다. values/themes/themes.xml values/themes/themes.xml (night) 이렇게 설정해주도록 하겠습니다. 참고로 style name 부분에는 자신의 앱 이름을 넣어주셔야 합니다. 나머지 코드입니다. activity_main.xml MainActivity.javapublic class MainActivity extends AppCompatActivity { private Switch switchMode; pr.. 2025. 3. 18.