〈kotlin〉Android studio使い方メモ2:View Binding
金宏和實さんの「作ればわかる!Androidプログラミング kotlin対応」を参考に
Android studioでkotlinを使ってAndroidアプリ作成。
MainActivity.ktでプログラムを作成する時、
activity_main.xml内でText ViewやButtonに指定したidを使いたい。
本に載っているsynthetic importは廃止されたみたい
参考書内では、
import kotlinx.android.synthetic.main.activity_main.*
とするだけで
activity_main.xml内で設定したidをいきなり変数として使っていたが、これはできなかった。
findViewByIdを使う
var btn : Button = findViewById(R.id.button)
このコードで「button」が入っているところに設定したid名を入れる。
ただ、使用したいidの数だけfindViewByIdを書く必要があり面倒。
View Bindingを使う
たくさんidを参照したいときはこっちの方が良さそう。
まずGradle Scriptsからbuild.gradle(Module)を開きandroid { 〜 } の中にコードを追加する。
android { //ここを追加 viewBinding { enabled = true } }
Sync Now をクリックして閉じる。
次にMainActivity.kt にコードを追加。
import com.example.appname.databinding.ActivityMainBinding class MainActivity : AppCompatActivity() { //追加 private lateinit var binding: ActivityMainBinding override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) //削除 setContentView(R.layout.activity_main) //追加 binding = ActivityMainBinding.inflate(layoutInflater) setContentView(binding.root) } }
idを使うときは「binding.指定したid」と書けばOK。