授業で推奨しているのは Pattern3 です。
class BasicPatternActivity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.button.setOnClickListener(object : View.OnClickListener{
override fun onClick(v: View?) {
// TODO: ボタンクリック時の処理
}
})
}
}
class Pattern1Activity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.button.setOnClickListener {
// TODO: ボタンクリック時の処理
}
}
}
class Pattern2Activity : AppCompatActivity(), View.OnClickListener {
private lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.button.setOnClickListener(this)
}
override fun onClick(v: View?) {
// eg. Button1, 2, 3 の分岐
if (v is Button) {
val message: String = when (v.id) {
R.id.button1 -> "button1 clicked!"
R.id.button2 -> "button2 clicked!"
else -> "button3 clicked!"
}
Toast.makeText(applicationContext, message, Toast.LENGTH_SHORT).show()
}
}
}
class Pattern3Activity : AppCompatActivity() {
private lateinit var binding: ActivityMainBinding
private val buttonClickListener = View.OnClickListener {
// TODO: ボタンクリック時の処理
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
binding.button.setOnClickListener(buttonClickListener)
}
}