公開日:2020/02/13更新日:2020/08/03
【Kotlin基礎】Buttonでボタンを実装する方法を解説

- Kotlinでボタンを表示させる方法が知りたい。
- xmlではなく、コードで実装する方法が知りたい。
- ボタンにクリックイベントを実装する方法が知りたい。
Kotlinには、Buttonというボタンを実装するViewがあります。
本記事では、Buttonの実装方法やボタンにクリックイベントを実装する方法を、サンプルコードを交え、わかりやすく解説しております。
目次
Buttonでボタンを実装する方法
Kotlinでボタンを実装するには、ButtonというViewを使用します。
【公式ドキュメント】 : Button | Android Developers
Buttonを実装するには、xmlで実装する方法と、コードで動的に実装する方法があります。
xmlでButtonを実装する
まずは、xmlで実装する方法を紹介致します。xmlで実装するには、以下のように実装します。
- xmlで実装
<Button
android:text="ボタン"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button/>タグで、Buttonを実装します。
Buttonのテキストは、android:textで指定します。
- <Button/>タグで、Buttonを実装する
- Buttonのテキストは、android:textで指定する
コードで動的にButtonを実装する
続いて、コードで動的に実装する方法を紹介致します。コードで動的に実装するには、以下のように実装します。
- コードで実装
val button = Button(this)
button.text = "ボタン"
button.layoutParams = LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT)
val linearLayout = findViewById<LinearLayout>(R.id.container)
linearLayout.addView(button)
Button()で、Buttonのインスタンスを生成しております。
Buttonのテキストは、textまたは、setText()で指定します。
また、このButtonを画面に表示させるには、Viewとして追加する必要があります。
Viewとして追加するには、addView()を使用します。サンプルでは親レイアウトのlinearLayoutに、Buttonを追加しております。
- コードで実装するには、Button()でインスタンスを生成した後、addView()で追加する
- コードでテキストを指定するには、textまたはsetText()を使用する
Buttonにクリックイベントを実装する方法
クリックイベントを実装する
続いて、Buttonにクリックイベントを実装する方法を紹介致します。Buttonにクリックイベントを実装するには、setOnClickListenerを使用します。
以下は、Buttonをクリックすると、トーストが表示されるサンプルコードです。
- MainActivity.kt
val button = findViewById<Button>(R.id.button)
button.setOnClickListener {
Toast.makeText(this, "クリックされました。", Toast.LENGTH_SHORT).show()
}
setOnClickListenerの後のブロック{ }内に、クリックされた時に行いたい処理を実装します。
- Buttonにクリックイベントを実装するには、setOnClickListenerを使用する
- クリックされた時に行いたい処理は、setOnClickListenerの後のブロック{ }内に実装する
クリックイベントの有効・無効を切り替える
最後に、クリックイベントの有効・無効を切り替える方法を紹介致します。クリックイベントの有効・無効を切り替えるには、isClickableを使用します。
- MainActivity.kt
val button = findViewById<Button>(R.id.button)
button.setOnClickListener {
Toast.makeText(this, "クリックされました。", Toast.LENGTH_SHORT).show()
}
button.isClickable = false
isClickableにfalseを指定すると、クリックが無効になります。trueを指定すると、有効になります。
注意しなければならないのは、isClickableを実装するタイミングです。
例えば、isClickable = falseの処理をsetOnClickListenerの処理より前に実装した場合、クリックは有効になります。これは、setOnClickListenerが、内部で「isClickableがfalseであれば、trueに変更する」という処理を行っているからです。
- クリックイベントの有効・無効を切り替えるには、isClickableを使用する
まとめ
- xmlでButtonを実装するには、<Button/>タグを使用する
- xmlでButtonのテキストを指定するには、android:textを使用する
- コードでButtonを実装するには、Button()でインスタンスを生成した後、addView()で追加する
- コードでButtonのテキストを指定するには、textまたはsetText()を使用する
- クリックイベントの有効・無効を切り替えるには、isClickableを使用する
関連記事