Fragmentのclassに
findViewById(R.id.xxx)
を使ったら、Rが赤字になってエラーで使えない。
なーぜーだー
色々な単語でググった結果、
onCreateViewで使われてる「binding」という単語で原因っぽいのがヒットした
色々見たけど、Code for Funさんとこの説明が一番わかりやすかった!
今まで、さんざんお世話になってきた「findViewById」は、
無効なIDや間違った型を指定してしまうリスクがあるので、
新しい書式「View Binding」に変えていきましょう!
ということらしいw
勝手に変えないでくれ
①View Binding を有効にする
build.gradle.kts(Module :app)ファイルに以下の3行を追加
------------------------------
buildFeatures {
viewBinding = true
}
------------------------------
※Bottom Navigation Views Activityでプロジェクト作ったので、勝手に追加済みだったw
②「Sync Now」する
View Binding を有効化済みなので、Sync不要ww
③Bindingでコード書く
以下の3行を所定の箇所に書いたら...
------------------------------
private ActivityMainBinding binding;
binding = ActivityMainBinding.inflate(getLayoutInflater());
setContentView(binding.getRoot());
------------------------------
Bindingは直接部品名使えちゃうよ!
binding.message.setText("こんにちは");
※赤字が部品名
すごい!!意外と簡単!!
Bottom Navigation Views Activityがいろいろ勝手にやってくれてたので、
今回私が追記したのは赤枠のみ!
で
クリアボタンをクリックしたら、色々リセットされるコードができてしまった!!
便利ですねー
あ、今、作ってるのは、買い物の時に、
割引シール付いてるけどいくらなの!?
内容量が違う同じ商品どっちがお得!?
電卓アプリで計算してたら、1つ目に計算した品の結果忘れた
という老化現象に対応する計算アプリですw
ついででタブで画面切り替えして、買い物チェックリスト画面と底値メモ画面の3画面を簡単に移動できるようにしたいです