버퍼 리더를 미리 만들어 놓고 토크나이저로 스트링 처리를 한 후 nextLine(), next(), nextInt() 함수로 처리하는 클래스 알고리즘 풀 때 매우 유용한듯? static class InputReader { public BufferedReader reader; public StringTokenizer st; public InputReader() { reader = new BufferedReader(new InputStreamReader(System.in)); } public String next() { while (st == null || !st.hasMoreTokens()) { st = new StringTokenizer(nextLine()); } return st.nextToken();..
분류 전체보기
코틀린을 이용한 캘린더 커스텀 뷰 소스 저장 캘린더 어뎁터를 만들어서 LinearLayout을 상속 받은 클래스에 바인딩한다. CalendarAdapter.kt class CalendarAdapter( context: Context, days: ArrayList, eventDays: HashSet, inputMonth: Int ) : ArrayAdapter( context, R.layout.view_calendar, days ) { // for view inflation private val inflater: LayoutInflater = LayoutInflater.from(context) override fun getView( position: Int, view: View?, parent: ViewGr..
코틀린에서 권한을 요청하기 위해 정의한 함수 private fun requestPermissions(requestCode: Int, permission: String) { if (ContextCompat.checkSelfPermission( this, permission ) != PackageManager.PERMISSION_GRANTED || ActivityCompat.shouldShowRequestPermissionRationale( this, permission ) ) { ActivityCompat.requestPermissions( this, arrayOf(permission), requestCode ) } } // 모든 권한 불러오기 private fun requestAllPermissions(..
많은 Api에서 안드로이드 앱의 KeyHash를 요구한다. Kakao map Api, naver Api 등등.... KeyHash를 생성하는 소스코드이다. @RequiresApi(Build.VERSION_CODES.P) fun getKeyHash() { try { val info = packageManager.getPackageInfo(packageName, PackageManager.GET_SIGNING_CERTIFICATES) val signatures = info.signingInfo.apkContentsSigners val md = MessageDigest.getInstance("SHA") for (signature in signatures) { val md: MessageDigest md = M..
안드로이드 9.0 파이 이상에서는 https의 사용을 강제하기 때문에 생기는 에러 네트워크 설정을 변경해주면 해결 가능하다. 1번 방법 res/xml/network_security_config.xml 생성 xml 폴더가 없을 시 새로 생성하기 api.xxx.com 그 후 Manifest에 이 xml 파일을 networkSecurityConfig 파일로 지정해준다. 2번 방법 Manifest 파일에 위의 코드를 추가한다. 두 방법의 차이는 아직 잘 모르겠다.
store.ts import { combineReducers, createStore, Reducer, Store } from 'redux' import {tokenReducer} from './token' const rootReducer:Reducer = combineReducers({ token:tokenReducer, }) const store:Store = createStore(rootReducer) export default store; token.ts import{ TokenState, TOKEN_REQUEST, TokenRequestAction } from './token.type' export const tokenState: TokenState = { token: 'test', } expor..