일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 클라우드가 뭐야
- pwable.kr
- 액션바 필요없숴
- Make sure the Cursor is initialized correctly before accessing data for it.
- 파이썬
- kotlin
- 페니빙
- UNIQUE constraint failed
- 클라우드란?
- 블록체인
- java.lang.IllegalStateException
- pwnable.kr
- 코틀린
- 6566
- pwnable
- 백준
- 나이순 정렬
- Docker
- col -1 from CursorWindow
- 포너블
- python
- tlqkf
- Couldn't read row 0
- cmd2
- cmd1
- Drive-By-Download
- 쏘큩
- SQLiteConstraintException
- 10814
- 애너그램 그룹
- Today
- Total
목록Android (9)
푸르미르
파이어베이스에 해당 프로젝트 생성 후 여러 dependencies를 추가해 준다. 파이어베이스 document에서 찾아보고 따라해 보는 것을 추천한다. firebase.google.com/docs/auth/android/start Android에서 Firebase 인증 시작하기 Firebase에 앱 연결 아직 추가하지 않았다면 Android 프로젝트에 Firebase를 추가합니다. 앱에 Firebase 인증 추가 Firebase Android BoM을 사용하여 모듈(앱 수준) Gradle 파일(일반적으로 app/build.gradle)에서 Firebas firebase.google.com 그럼 회원가입의 핵심 함수를 소개하겠다. 이때의 인증 방법은 이메일과 비밀번호를 통해 이루어진다. 사용자가 이메일과 ..
나는 어둠의 자식이니까 테마를 android:theme="@style/Theme.Design.NoActionBar"로 바꾸겠다. 여기서 왼쪽의 메뉴 imageView를 클릭하면 왼쪽에서부터 네비게이션 메뉴바가 슉 나오고 3개중 하나를 선택하면, 토스트 메세지가 나오도록 간단히 제작하였다. 또 네비게이션 바에서 하나의 item이 선택되었을 때 네비게이션 바가 자동으로 닫히고, 네비게이션 바가 열려있는 상태에서 백버튼을 누르면 앱이 finish 되는것이 아닌 네비게이션 바가 닫히는 기능을 부여해보겠다. navigation바를 사용하기 위해서는 첫째로, 라이브러리를 추가해야한다. 저 퍼런 부분을 클릭해서 build.grandle(modul.~app)으로 간다. dependencies 가 아래부분에 위치해 있는..
액션바가 기본적으로 주어진다. 그런데 그 액션바가 필요가 없을 때 테마를 바꿔주면 되는데, manifest파일에 가보자. 내가 체크표시한 줄에서 테마를 바꾸어 준다. 액션바가있을 때 (처음 기본테마) Design.NoActionBar테마 android:theme="@style/Theme.Design.NoActionBar"로 변경 Design.Light.NoActionBar테마 android:theme="@style/Theme.AppCompat.Light.NoActionBar" manifest 파일의 쓰임새는 developer.android.com/guide/topics/manifest/manifest-intro 앱 매니페스트 개요 | Android 개발자 | Android Developers 모든 앱 프..
항상 오류를 해결하고 보면 내가 죄인이다. 컴퓨터는 잘못을 하지 않는다. 내가 다아아 잘못했다. 오류 트레이서: 짤린부분은, java.lang.IllegalStateException:Couldn't read row 0, col -1 form CursorWindow. Make sure the Cursor is initialized correctly before accessing data for it. 결국 내가 table 칼럼 명을 잘못썼따. 그래서 cursor가 읽지를 못했다. 내가 죄인이다. ColumnName을 똑바로 쓰자!
이 에러가 났다. 오류트레이스는 이렇다. 이 에러를 처음 맞딱드렸을 때 코드상 문제가 없나 다시 훑어보느라 시간을 많이 썼다. 하지만 문제는 그게 아니였다. SQLite 의 테이블에 내가 primary key로 gName을 지정해 두었다. 코드는 대강 이렇다. 에뮬레이터나 폰으로 앱을 실행시 지정한 gName에 primary key이기 때문에 중복되는 gName을 insert했을 때 오류가 나는 것이었다. 이미 테이블에는 해당 name이 존재하는데 새로 db테이블에 insert할 때 같은 gName의 레코드 삽입은 허용되지 않는다. 만약 이미 db테이블에 있는 gName을 또 다시 입력하여 추가한다면 위와 같은 에러가 난다. 주의하자.
ui는 이렇다. 맨위에는 홈으로 가는, 즉 첫페이지로 구글페이지가 열리게끔 설정하였는데, 홈버튼 클릭시에 구글페이지로 가게 설정하였으며, 옆에 점이 세로로 되어있는 옵션바를 누를경우, 옵션바가 나오고 저기서 검색사이트를 클릭할 경우 흔하게 쓰이는 사이트가 나오며 저기서 한 사이트를 클릭하면 webView에 해당 사이트가 나오게 제작하였다. 또 개발자 정보라는 메뉴 아이템을 누를 경우 개발자와 컨택 할 수 있는 항목이 나오며 이중 하나를 클릭할 경우 암시적 인텐트로 인해 해당 기능을 하는 휴대폰의 기본 앱이 켜지게 된다. 예를 들어 전화하기를 클릭했을 경우, 휴대폰의 전화 앱이 켜지고 개발자의 전화번호가 뜨게 된다. 또 webView를 길게 눌렀을 경우, 이런식으로 컨텍스트 메뉴가 나오게 된다. 피이지 공..
바로 앞의 글의 동일한 ui에서 시간이 줄어드는 타이머를 만들어 입력값으로 주어진 시간으로부터 타임오버시 0초 00으로 표시가 되는 앱을 만들어 보겠다. ui는 이렇다. 아래에 초를 입력하고 타이머설정 버튼을 누르면 타이머가 작동한다. .xml .kt timer기능을 사용하였고, runOnUiThread메서드를 사용하여 ui를 조작해주었다. time을 감소시켜가며 ui의 sec와 milli를 변경시켰는데 이때 time이 0이되었을 때 타이머를 취소하였다. 이때에도 역시나 runOnUiThread메서드를 사용하였다.
오늘은 시간을 재는 간단한 스톱워치를 만들었다. 일단 앱 UI부터 보면 이런 형태이다. 저 분홍색 되돌이 표시를 누르면 다시 0이되어 reset된다. 또 가운데 play버튼을 누르면 스톱워치가 실행되며 랩타임버튼을 누를시, 위 처럼 랩타임이 위에서 아래로 기록이 된다. .xml코드 .kt코드 여기서의 핵심은 timer인데 코틀린에서 일정한 시간을 반복하는 동작을 수행할 때 timer기능을 사용한다. timer(period=1000){ //오래걸리는 작업 runOnUiThread{ //ui조작을 하여 빠른 시간안에 행해져야 하는작업 } } 위의 코드는 1000ms 즉 1초 간격으로 어떤 동작을 수행하는 코드이다. 워커스레드에서는 ui를 조작할 수 없어 runOnUiTread()메서드를 사용하여 ui를 초마..
오늘은 Explicit 'this' or 'super' call is required. There is no constructor in superclass that can be called without arguments 에러를 살펴보도록 하겠다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 open class Car2 { var color : String = "" var speed : Int = 0 companion object { var carCount : Int = 0 const val MAXSPEED :..