반응형 앱 만들기/안드로이드 study156 안드로이드 버튼 이벤트를 구현하는 방법 4가지 - 1 안드로이드 버튼 이벤트를 구현하는 방법 4가지를 다루어 보겠습니다. 오늘은 그 중 첫 번째로 XML 을 활용한 방법입니다. 안드로이드 XML 에디터에서는 버튼 이벤트를 속성에서 지원합니다. 1. 버튼 Atrribute 의 onclick 속성을 선택.(oncli...까지만 치면 검색이 됩니다) onClick 속성 옆에는 함수 이름을 적습니다. 여기에 적힌 함수명이 바로 코드에 기재되며, 버튼 이벤트가 발생시 해당 함수를 호출하게 됩니다. (콜백 메소드 처럼 말이죠) 함수 이름은 자신이 원하는 이름을 적어봅니다. 이렇게 적고 XML 편집기의 Code 탭으로 이동해보면, "onClick" 부분에 빨간 밑줄이 보입니다. 코드에 해당 함수가 없다는 내용으로, Alt+enter 를 누르면 자동으로 코드를 입력해줍니.. 2022. 6. 14. 안드로이드 버튼 색상 바꾸기 안드로이드 버튼의 기본 색상은 퍼플 입니다. values/themes/themes.xml 정의를 보면 하기 와 같이 퍼플 컬러값이 지정되어 있습니다. colorPrimary 를 바꾸게 되면 기본 버튼의 색상이 바뀌게 되지만, colorPrimary 로 등록된 주요 UI 부분의 색상이 모두 바뀌기 때문에 버튼별 색상값을 바꾸는 것이 좋아보입니다. @color/purple_500 @color/purple_700 @color/white colorPrimary 는 앱바 및 다른 주요 UI 구성요소의 색상 값이라고 정의 되어 있습니다.(안드로이드 개발자 페이지) #3F51B5 #303F9F #FF4081 버튼 색상은 backgroundTint 속성에서 간단히 변경할 수 있습니다. 버튼 색상 수정 전후의 모습 입니.. 2022. 6. 12. 데몬쓰레드 만들기 S/W 용어에서 데몬(deamon) 은 사용자가 직접 제어하지 않고 백그라운에서 돌면서 여러 작업을 하는 프로그램을 말합니다. 데몬의 어원 뜻은 그리스어로 '악한 영혼' 이란 뜻으로 인간과 신을 연결해주는 매개체 역할을 하는 존재라고 합니다. 음 백그라운드에서 작업을 하며, 메인 프로그램을 도움을 주는 것을 연관 짓자면 비슷한거 같기도 하네요 ^^ 어쨌든, 데몬 스레드를 만들어봅시다. 데몬 스레드는 메인 스레드가 종료되면 같이 따라 강제로 종료되는 스레드를 이야기합니다. 메인 스레드가 종료되기 전에는 별도로 자신의 일을 수행하고 있겠죠? 프로그램으로 예를 들자면, 메신저 채팅 중의 파일 송수신 혹은 앱 내에서 자동으로 저장하는 기능 등등이 되겠습니다. 이런 프로그램들은 앱 자체가 정말 종료되면 당연히 종.. 2022. 6. 6. 쓰레드 중지 시키기. 쓰레드를 가장 안정적으로 중지시키는 방법은 쓰레드 내 반복문의 플래그를 false 로 바꾸어 run() 메소드가 정상적으로 실행을 마치게 하는 것이다. @Override public void run() { while(isRepeat = true){ //isRepeat 변수를 false 로... System.out.println("쓰레드 동작 중"); } 하지만, Thread 의 interrupt() 함수로 강제 exception 을 발생시켜 동작중인 쓰레드를 정지시킬수 있다. public class ControlThread { public static void main(String[] args) { Thread th2 = new Thread(new Thread2()); th2.start(); //인터럽트.. 2022. 6. 3. 쓰레드 동기화 스레드에서 동기화가 필요한 이유는 다음과 같습니다. A, B 스레드가 공통 데이터에 접근을 합니다. A, B 각각 공통 데이터에 값을 설정합니다. 우리가 기대한 결과는 A 가 설정된 후 A의 값이 나오고 B는 B의 설정된 값이 나오길 원합니다. 그런데, 결과는 하나의 스레드가 값을 세팅하는 중 다른 스레드가 덮어쓰기를 하게 됩니다. 즉, 마지막에 실행된 스레드가 값을 덮어쓰기 하게 되는 것입니다. 바로 스레드의 동기화가 필요한 시점입니다. 공용데이터 shareData public class ShareClass { int shareData; void setData(int num) { shareData = num; try { Thread.sleep(1000); } catch (InterruptedExcept.. 2022. 5. 11. 익명클래스 는 언제 사용되나요? https://soo0100.tistory.com/1794 Java - 중첩 인터페이스가 필요한 이유 자바에서 중첩 인터페이스는 주로, 이벤트 구현 목적으로 사용된다. 중첩 인터페이스는 멤버 인스턴스와 정적 멤버 인스턴스로 나뉠 수 있는데 안드로이드 및 자바의 UI 이벤트 구현을 위해서는 soo0100.tistory.com 익명 클래스는 클래스 이름이 없는 클래스를 말합니다. 사용처는 주로 윈도우 나 안드로이드의 UI 이벤트 시스템을 구현 시 사용이 됩니다. 지난 시간에는 중첩클래스를 사용해서 클릭 이벤트를 구현해보았습니다. 동일한 구성이나, 컴포넌트에 대한 클래스를 별도로 생성해서 변수로 담고 있지 않다는 것이 다릅니다. 익명 클래스는 이름이 없기때문에 익명 클래스를 선언한 특정한 범위 내에서만 사용됩.. 2022. 4. 23. Java - 중첩 인터페이스가 필요한 이유 자바에서 중첩 인터페이스는 주로, 이벤트 구현 목적으로 사용된다. 중첩 인터페이스는 멤버 인스턴스와 정적 멤버 인스턴스로 나뉠 수 있는데 안드로이드 및 자바의 UI 이벤트 구현을 위해서는 주로 정적 멤버 인스턴스 방식이 많이 사용된다. 사용법을 알아보자. 버튼을 눌렀을때 반응하는 이벤트 클릭 리스너를 구현하고자 하면, 버튼은 하기처럼 구현이 된다. 실제 안드로이드나 버튼 클래스의 내부는 이런 식으로 정적 멤버 인터페이스가 정의되어있다. Open API Document를 참조하면 알 수 있다. (하기 링크 참조 바람) public class Button { //인터페이스 타입 필드 OnClickListener listener; //중첩 인터페이스 static interface OnClickListener{.. 2022. 4. 22. 자바 예외처리가 필요한 이유 자바에서는 프로그램 예외를 어떻게 잡아낼까요? 컴파일 과정에서 오류로 발견되는 것이 가장 일반적 입니다. 자바에서는 일반적으로 예외가 발생할 가능성이 있는 코드를 발견하면 컴파일 단계에서 강제적으로 예외코드를 작성하도록 요구합니다. 이런 에러를 자바에서는 "일반 예외"라고 말합니다. 하기 코드가 그런 경우죠. Class test = Class.forName("java.lang.string"); 클래스 명이 없을 수 도 있기에 미리 컴파일 과정에서 하기와 같은 exception 처리를 하도록 에러메시지를 받습니다. 이런 경우는, 개발자가 다행히도 프로그램 오류를 컴파일 단계에서 방어 할 수 있습니다. 예외처리 중 다른 하나는 실행 과정에서 발생하는 에러 입니다. 바로 "실행 예외"입니다. 프로그램 구동 중.. 2022. 3. 12. 커스텀 어댑터 뷰를 활용한 리스트뷰 구현하기-2 https://soo0100.tistory.com/1731 커스텀 어댑터 뷰를 활용한 리스트뷰 구현하기-1 https://soo0100.tistory.com/1716 안드로이드 어댑터 뷰 기초(리스트 뷰 만들기) https://soo0100.tistory.com/1713 스크롤 뷰 만들기 와 주의사항 화면에 넘치는 데이터를 처리하는 것 중 가장 기본적인 것이 바.. soo0100.tistory.com 지난 시간, 리스트 뷰의 화면과 데이터 구성을 모두 마쳤다. 오늘은 해당 데이터를 커스텀 어댑터 뷰 에 연결하고, 리스트 뷰와 어댑터를 연결하겠다. 3. 데이터 와 어댑터 를 연결한다. 우리가 만든 리스트 뷰는 이미지와 텍스트 데이터를 담고 있다. 개발자가 원하는 어댑터 뷰를 만들기 위해서는 BaseAdap.. 2022. 2. 15. 이전 1 2 3 4 5 6 7 ··· 18 다음 반응형