【Android,Kotlin】MutableLiveData<MutableList<X>>を使わないMutableListのMutableLiveDataではなくListのMutableLiveDataにする MutableLiveData<MutableList<Int>> のようなLiveDataを使う場合、MutableListのaddメソッドなど要素を追加・削除するメソッドを呼び出して 更新しても、データの更新は通知されない。ANDROID 2022-08-11 2023-03-31
【Android,Kotlin】lifecycleOwnerを渡さないとデータバインディングが動かないlifecycleOwnerのセットを忘れるとデータバインディングが連動しない LiveDataを持ったViewModelを使ってデータバインディングを使う場合、Fragmentで 以下のようにViewModelとレイアウトを紐づける。ANDROID 2022-08-11 2023-03-31
【Android,Kotlin】'getColor(Int): Int' is deprecated. Deprecated in Javaの対応方法getColor(int)はDeprecated getColor(int)はDeprecatedになった。 以下のようなコードを書くと'getColor(Int): Int' is deprecated. Deprecated in Javaとワーニングが表示される。 context.resources.getColor(R.color.foo) 代わりにgetColor(int, Resources.Theme)を使う 1引数のgetColor(int)の代わりに2引数のgetColor(int, Resources.Theme)を使う。ANDROID 2022-08-11 2023-03-31
【Android】EditText の下線を消すEditTextの下線 EditTextはデフォルトで下線が表示されている。 <EditText android:layout_width="match_parent" android:layout_height="wrap_content" /> EditTextの下線を消す EditTextのandroid:backgoundプロパティを@nullにすると下線が消える。ANDROID 2022-08-11 2023-03-31
【Android,Kotlin】requireContext()でクラッシュするパターンと対応FragmentのrequireContext() FragmentのgetContext()はnullableだが、requireContext()メソッドでnullableではない値が取得できる。ANDROID 2022-08-11 2023-03-31
【Kotlin】Kotlinのnullチェックで早期return普通のnullチェック メソッドの冒頭でnullかどうかをチェックして以下のように処理を行なう。 nullならreturnする nullでないなら処理を行なう 例えばnullableな数値の足し算は以下のようになる。ANDROID 2022-08-11 2023-03-31
【Android,Kotlin】メニューの処理をMenuProviderにするNavigation ComponentでFragmentからメニューを表示する場合。 メニューの古い作りかた Navigation Component使用時にFragmentでApp Barのメニューを作るには以下の手順で実装していた。ANDROID 2022-08-09 2023-03-31
【Kotlin】Pair のリストを Map にするPair のリストを Map に変換する associate メソッドを利用すれば簡潔に書ける。 associate メソッドは「Pairを返す無名関数」を引数にとって、Mapを返す関数。 val pairs = listOf("a" to 1, "b" to 2) val map = pairs.associate { it } println(map) // => {a=1, b=2} オブジェクトのリストを Map に変換する Pairを返す無名関数を渡せばいいので、任意のオブジェクトに対しては以下のようにすればよい。ANDROID 2022-08-08 2023-03-31
【Android,Kotlin】メニューの状態の動的更新メニューの状態更新の流れ 流れは以下の通り。 メニューの作成時に状態を設定する メニューを更新したいタイミングでメニューをActivity#invalidateOptionsMenu()を呼んでinvalidateする メニューをinvalidateすれば1.の処理が再度走るので、1.で設定したい状態にする。ANDROID 2022-08-07 2023-03-31
【Android,Kotlin】Navigaton Component使用時に特定FragmentのApp Barのホームボタンを✕にする手順 Resource Managerで✕マークを追加する 【Android Studio】Vector Assetsの追加手順 を参考に✕マークを追加する。 close選択する。 Fragment#onCreateView でホームボタンを差し替える (activity as? AppCompatActivity) ?.supportActionBar ?.setHomeAsUpIndicator(R.drawable.ic_baseline_close_24)ANDROID 2022-08-07 2023-03-31