suer TIL

Androids

ANDROID
2024-12-22 2024-12-22
eye catch

【Android,Kotlin】Kotlinらしいダウンキャスト

ダウンキャストが必要となる例 open class Super {} class A : Super() { fun f() {} } val x: Super = A() x.f() // x は Super なので f メソッドがわからずエラー: if+is演算子で分岐する Kotlinでは実行箇所の文脈によって自動的に推論されてダウンキャストされる。 例えば上記例では if (x is A) でチェックすると、そのなかではxはAのインスタンスであると判断されるので Aクラスのインスタンスメソッドf()が呼べるようになる。
ANDROID
2022-08-22 2023-03-31
eye catch

【Android,Kotlin】KtlintでKotlinコードのチェック

Ktlint KtlintはKotlin用のlinter。 本記事ではビルド設定(Gradle)に組み込んで使用する。 app/build.gradleに設定を追加する configurations { ktlint } dependencies { ... // バージョンは本家を確認すること https://github.com/pinterest/ktlint ktlint "com.pinterest:ktlint:0.48.2" } // lintタスクを追加 task ktlint(type: JavaExec, group: "verification") { description = "Check Kotlin code style." classpath = configurations.ktlint main = "com.pinterest.ktlint.Main" args "src/**/*.kt" } check.dependsOn ktlint // フォーマットタスクを追加 task ktlintFormat(type: JavaExec, group: "formatting") { description = "Fix Kotlin code style deviations." classpath = configurations.ktlint main = "com.pinterest.ktlint.Main" args "-F", "src/**/*.kt" } argsに指定しているパスはプロジェクトの環境に合わせる。
ANDROID
2022-08-21 2023-03-31
eye catch

【Android,Kotlin】SoundPoolクラスを利用して効果音を鳴らす

SoundPoolクラスを利用する 本記事ではSoundPoolクラスを利用して効果音を鳴らす。 SoundPoolクラスはあらかじめ音声ファイルをデコードしてメモリに持っておく仕組みになっていてレイテンシが小さい。 速いフィードバックが求められる効果音の再生に向いている。
ANDROID
2022-08-20 2023-03-31
eye catch

【Android,Kotlin】Null許容型(?)をunwrapするパターン

Null許容型をunwrapしたい Null許容型をnon-nullableな型のメソッドの引数にわたすとき困ることがある。 fun f(foo: Foo) { … } var foo: Foo? = … fun g() { f(foo) // コンパイルエラー } メソッドfの引数はNull許容型ではないので、Foo?型の変数を引数に書くとコンパイルエラーとなる。
ANDROID
2022-08-19 2023-03-31
eye catch

【Android,Kotlin】ConstraintLayoutでビューがどうしても重複するときに確認すること

0dp = 制約に合致 = 制約を満たす最大サイズ Androidで調べ物をしていてよく0dpという指定を見かけることがある。 制約で高さや幅を決めたいときに指定するんだろうな、というイメージはあったが、 ちゃんと調べると公式できちんと説明が書かれていた。
ANDROID
2022-08-19 2023-03-31
eye catch

【Android,Kotlin】'VIBRATOR_SERVICE: String' is deprecated. Deprecated in Java への対処

‘VIBRATOR_SERVICE: String’ is deprecated. Deprecated in Java 以下の様なコードを書いているとdeprecated warningが出る。 val vibrator = context.getSystemService(Context.VIBRATOR_SERVICE) as? Vibrator メッセージは 'VIBRATOR_SERVICE: String' is deprecated. Deprecated in Java で、Context.VIBRATOR_SERVICEはdeprecatedになったので置き換えてくれという内容。
ANDROID
2022-08-19 2023-03-31
eye catch

【Android,Kotlin】Navigation Component利用時に戻るボタンで確認ダイアログを出す

編集画面で保存せずに戻るときに確認ダイアログを出したい ユーザー入力を伴う画面で戻るボタンをクリックしたとき、編集内容が消えてしまうのを通知して、 ユーザーに本当に戻るか、画面にとどまるかを選択させたい。
ANDROID
2022-08-18 2023-03-31
eye catch

【Android,Kotlin】onOptionsItemSelectedでtrueを返すとホームボタンが反応しなくなる

ホームボタン(戻るボタン)をクリックしても反応しない事象が発生 Navigation Componentを利用時、戻るボタンをクリックしても前の画面に戻れない場合がある。 原因: Fragment#onOptionsItemSelectedでtrueを返している ホームボタンはデフォルトで戻るはずなので、もし戻らないとしたらホームボタンクリック時の処理を止める コードが書かれている可能性がある。
ANDROID
2022-08-18 2023-03-31
eye catch

【Android,Kotlin】コンテンツURIからMIME typeを取得する

content://〜のURIからそのファイルのMIME typeを取得する ContentProviderを使うなどしてAndroid端末内のファイルを取得するとき、content://〜形式のコンテンツURIとして得られる。
ANDROID
2022-08-18 2023-03-31
eye catch

【Android,Kotlin】RecyclerView#onBindViewHolderでイベントリスナを登録すると重複して実行されることがある

RecyclerView#onBindViewHolderでイベントリスナを登録するときの注意 RecyclerView#onBindViewHolderでViewHolder内の要素に対してイベントリスナを登録するときは注意が必要。 RecyclerViewはViewHolderがいくつあっても画面に見えている部分だけインスタンス化されている。 スクロールによってViewHolderが隠れるのと同時に新しいViewHolderが表示され、そのとき隠れたViewHolderが使い回される。
ANDROID
2022-08-16 2023-03-31
  • ««
  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • »
  • »»
AUTHOR
author image
suer
ふつうのプログラマ
LATESTS
eye catch
【VSCode】vscodevimがCopilot Next Edit Suggestions(NES)のキー入力を邪魔する問題を解決する
VSCODE
2025-02-23 2025-02-23
eye catch
【Docker】docker-composeでホスト名を指定して立ち上げる
LINUX
2025-02-02 2025-02-02
eye catch
【Terraform】removedブロックでリソースを破棄せずにtfstateからのみ削除する
TERRAFORM
2025-01-20 2025-01-20
eye catch
【Terraform】import ブロックで既存リソースを取り込む
TERRAFORM
2025-01-18 2025-01-19
eye catch
【Terraform】terraform_remote_stateでtfstateを分割する
TERRAFORM
2025-01-13 2025-01-13
  • ホーム
  • お問い合わせ
  • プライバシーポリシー

© 2022 suer