【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
【Android,Kotlin】ConstraintLayoutでビューがどうしても重複するときに確認すること0dp = 制約に合致 = 制約を満たす最大サイズ Androidで調べ物をしていてよく0dpという指定を見かけることがある。 制約で高さや幅を決めたいときに指定するんだろうな、というイメージはあったが、 ちゃんと調べると公式できちんと説明が書かれていた。ANDROID 2022-08-19 2023-03-31
【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
【Android,Kotlin】Navigation Component利用時に戻るボタンで確認ダイアログを出す編集画面で保存せずに戻るときに確認ダイアログを出したい ユーザー入力を伴う画面で戻るボタンをクリックしたとき、編集内容が消えてしまうのを通知して、 ユーザーに本当に戻るか、画面にとどまるかを選択させたい。ANDROID 2022-08-18 2023-03-31
【Android,Kotlin】onOptionsItemSelectedでtrueを返すとホームボタンが反応しなくなるホームボタン(戻るボタン)をクリックしても反応しない事象が発生 Navigation Componentを利用時、戻るボタンをクリックしても前の画面に戻れない場合がある。 原因: Fragment#onOptionsItemSelectedでtrueを返している ホームボタンはデフォルトで戻るはずなので、もし戻らないとしたらホームボタンクリック時の処理を止める コードが書かれている可能性がある。ANDROID 2022-08-18 2023-03-31
【Android,Kotlin】コンテンツURIからMIME typeを取得するcontent://〜のURIからそのファイルのMIME typeを取得する ContentProviderを使うなどしてAndroid端末内のファイルを取得するとき、content://〜形式のコンテンツURIとして得られる。ANDROID 2022-08-18 2023-03-31
【Android,Kotlin】RecyclerView#onBindViewHolderでイベントリスナを登録すると重複して実行されることがあるRecyclerView#onBindViewHolderでイベントリスナを登録するときの注意 RecyclerView#onBindViewHolderでViewHolder内の要素に対してイベントリスナを登録するときは注意が必要。 RecyclerViewはViewHolderがいくつあっても画面に見えている部分だけインスタンス化されている。 スクロールによってViewHolderが隠れるのと同時に新しいViewHolderが表示され、そのとき隠れたViewHolderが使い回される。ANDROID 2022-08-16 2023-03-31
【Android】開発時のみhttp(≠https)による通信を許可する開発中のWebアプリをローカルに立ち上げて接続したい ホストOSに開発中のWebアプリを立ち上げてエミュレータから接続したい。 開発時はhttpであることがほとんどなので、アプリからhttpで接続したいが、 Android 9以降はHTTP通信がデフォルトでは許可されない。ANDROID 2022-08-15 2023-03-31
【Android】エミュレータでホストOSのWebサーバに接続するホストOSに立ち上がっているWebサーバーにエミュレータから接続したい WebアプリとAndroidアプリを開発していて、開発中のWebアプリにAndroidアプリから接続したい場合がある。 Android端末から見てlocalhostはAndroid OSのlocalhostのことなので、ホストOSに接続できない。ANDROID 2022-08-15 2023-03-31
【Android,Kotlin】RecyclerViewで指定した行にスクロールするスクロールする 指定したpositionまで移動するにはRecyclerView#scrollToPositionを使用する。 以下のコードでpositionが10の位置までスクロールする。ANDROID 2022-08-14 2023-03-31