質問: ### 前提・実現したいこと 基礎的な本を一冊終えて、二冊目に取り組んでいます。まず本を見ずに自分で書いたコードがコメントアウトしている箇所です。お聞きしたいのは、自分はViewのIdであるbuttonを直接使っていますが、val btClickと宣言して使うことと何か違いはありますか?より安全である等。 また、このコードを書いていて、可読性を重視して省略せずに書いているんだろうな、と感じた一方で、findViewById()が多く回りくどくも感じました。しかし、このように変数宣言やクラスのインスタンス化をちゃんと書いて処理する方が正統なやり方ですか?また、慣れていた方が良いですか? よろしくお願いします。 ### 該当のソースコード class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) // button.setOnClickListener { textView.setText(editText.text) } val btClick=findViewById(R.id.button) val listener=HelloListener() btClick.setOnClickListener(listener) } private inner class HelloListener: View.OnClickListener{ override fun onClick(v: View?) { val input=findViewById(R.id.editText) val output=findViewById(R.id.textView) val inputStr=input.text.toString() output.text=inputStr } } }
回答: findViewById と Kotlin の synthetic import のどちらを使うべきか? という質問ですね。 現在の Android Studio では標準で synthetic import が使えるので、積極的に使えばいいと思います。 注意事項としては、`import kotlinx.android.synthetic.main.activity_main.*` の `activity_main` の部分を適切に指定する必要があることと、Adapter や ViewHolder で使う場合は注意が必要 (そもそも使えるのか?) ってことでしょう。