분류 전체보기 (163) 썸네일형 리스트형 [Android] 상단바(Action bar)에 옵션 메뉴 구현하기 메뉴의 종류로는 옵션 메뉴, 팝업 메뉴, 컨텍스트 메뉴가 있지만 오늘은 상단바(Action bar)에 옵션 메뉴를 추가해보겠다. 옵션 메뉴는 상단바에 있는 옵션 메뉴 버튼을 클릭하거나 Activity가 생성될 때 한 번만 생성된다. 그리고 Activity 당 한 개씩 구현하는데 여러 개의 Activity가 옵션 메뉴를 공유할 경유 제일 큰 부모를 상속 받아 공통적인 기능을 수행한다. 옵션 메뉴를 적용시키기 위해서 menu.xml와 같이 원하는 디자인으로 xml 생성 후에 onCreateOptionsMenu()를 통해 Activity에 inflate를 해준다. 그리고 opOptionsItemSelected()로 버튼 별 이벤트를 추가할 수 있다. onCreateOptionsMenu()에서 inflate하기.. [Python] 백준 16173번 16174번 문제, 점프왕 쩰리 시리즈 https://www.acmicpc.net/problem/16173 16173번: 점프왕 쩰리 (Small) 쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로, (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다. www.acmicpc.net https://www.acmicpc.net/problem/16174 이 문제는 주어진 맵 밖을 벗어나거나 -1(맨 우측 하단)에 도달하지 못하면 게임에 져서 "Hing"을 출력하고 -1에 도달하면 게임에서 승리해 "HaruHaru"를 출력한다. 세부 조건으로 시작 좌표는 맨 좌측 상단인 (0, 0)이고 움직이는 방향은 우측 또는 하단이지만, 움직일 수 있는 거리는 현재 내가 있는 칸의 숫자이다. 이런.. [Android] xml이 아닌 inflate를 사용해 View 꾸미기 보통 xml 파일에서 View를 꾸미지만, java 파일에서 코드를 통해 View를 꾸미는 방법도 있다. 그러기 위해서는 inflate를 사용해야 한다. inflate를 사용하는 방법으로 두 가지가 있는데 첫번째는 LayoutInflater 객체를 사용하는 것이고 두번째는 View 클래스의 static 메소드인 inflate()를 이용하는 것이다. 두번째 방법이 더 유용하기 때문에 두번째 방법을 어떻게 사용해야 하는지 자세히 이야기해보겠다. inflate 매개변수로 xml로 디자인한 Component를 불러와 Layout에 addView() 해주면 된다. 이렇게 하면 xml마다 View를 만들어 줄 필요 없이 Component를 효율적으로 재사용할 수 있다. addView()는 LinearLayout 같.. [Git] GitHub에 대용량 파일 업로드 하기 (Git lfs) 일반적으로 github에 push할 때 100MB 이상 파일이 있다면 error가 발생하면서 push가 되지 않는다. 그래서 100MB 이상 파일을 업로드 하기 위해서는 git lfs를 사용해야 한다. 1. git lfs 설치 $ git lfs install 2. 100MB 이상 파일 추가 $ git lfs track *.(확장자명) $ git add .gitattributes 3. git commit and push $ git commit $ git push [Java] 백준 16173번 문제, 점프왕 쩰리(Small) https://www.acmicpc.net/problem/16173 16173번: 점프왕 쩰리 (Small) 쩰리는 맨 왼쪽 위의 칸에서 출발해 (행, 열)로 나타낸 좌표계로, (1, 1) -> (2, 1) -> (3, 1) -> (3, 3)으로 이동해 게임에서 승리할 수 있다. www.acmicpc.net 게임 조건은 다음과 같다. 1. ‘쩰리’는 가로와 세로의 칸 수가 같은 정사각형의 구역 내부에서만 움직일 수 있다. ‘쩰리’가 정사각형 구역의 외부로 나가는 경우엔 바닥으로 떨어져 즉시 게임에서 패배하게 된다. 2. ‘쩰리’의 출발점은 항상 정사각형의 가장 왼쪽, 가장 위의 칸이다. 다른 출발점에서는 출발하지 않는다. 3. ‘쩰리’가 이동 가능한 방향은 오른쪽과 아래 뿐이다. 위쪽과 왼쪽으로는 이동할.. [Android/JAVA] TableLayout으로 View 이쁘게 배치하기 TableLayout을 사용해 View가 이쁘게 배치되도록 하자. TableLayout에서 한 행을 나타내기 위해 TableRow를 사용한다. TableLayout 내에서 View가 차지하는 크기를 지정하기 위해 가로 길이 지정은 layout_span 속성을 사용하고 View의 시작 위치는 layout_column 속성으로 지정해준다. EditText 경우 layout_span을 4로 지정했기 때문에 입력창 크기가 이쁘게 길게 되어 있다. SAVE 버튼과 CANCEL 버튼도 이쁘게 배치되어 있는데 SAVE 버튼 속성에 layout_column을 3을 줬기 때문에 왼쪽에서 4번째 칸에 SAVE 버튼이 배치된다. 칸 수를 셀 때 0부터 세기 때문에 속성값을 3으로 하면 4번째 위치에 있는 것이다. CANCE.. [Android/JAVA] FrameLayout에서 View 활성화/비활성화 하기 RadioButton을 누르면 해당 하는 배경색을 가진 TextView가 동일한 위치에서 나타나게 하고 싶어 FrameLayout을 사용했다. FrameLayout은 탭 메뉴를 만들 때 유용하기 때문에 사용법을 익혀 두면 좋다. FrameLayout은 View 생성 위치가 같기 때문에 시각적으로는 맨 위에 있는 View만 보이고 Layout 안에 있는 View들은 그 아래에 겹쳐져 있다. *RadioButton 클릭 이벤트는 (2021.10.29 - [Dev./Android] - [Android] RadioButton, RadioGroup 체크 이벤트(CheckedChange) 작동) 참고. 클릭 이벤트에서 버튼 클릭시 TextView들의 visibility 속성을 True/False로 유동적으로 바꿔주.. [Android/JAVA] EditText에서 EditorActionListener()로 Enter 이벤트 만들기 원래 일반적인 EditText는 Enter키 발생시 무반응하는데 imeOptions 속성을 추가하면 다양한 기능을 추가 할 수 있다. imeOptions 종류로 actionSend, actionGo, actionSearch 등이 있는데 이 글에서는 actionSend를 사용한 실습을 진행했다. 실습이 굉장히 간단한데 imeOptions 속성을 지정했다면 setOnEditorActionListener()를 통해 이벤트 리스너를 추가하면 된다. onEditorAction()을 오버라이드해주어야 하는데 매개변수로 (뷰, 액션 아이디, 키 이벤트)가 필요하다. 키 이벤트는 키보드 자판에 있는 키를 의미하기 때문에 우리가 필요한 변수는 액션 아이디이다. 앞서 editText를 actionSend로 했기 때문에 i.. 이전 1 ··· 8 9 10 11 12 13 14 ··· 21 다음