前提・実現したいこと
if文がよく分かりません。ボタンが3つありひとつずつ押すとメッセージを表示させたいです
ここに質問の内容を詳しく書いてください。
(例)PHP(CakePHP)で●●なシステムを作っています。
■■な機能を実装中に以下のエラーメッセージが発生しました。
発生している問題・エラーメッセージ
実行されない
該当のソースコード
class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) } fun showMessage(view: View) { if (val button1 = findViewById<Button>(view.id)){ Toast.makeText(this, "1が押されました", Toast.LENGTH_LONG).show()} else (val button2 = findViewById<Button>(view.id)){ Toast.makeText(this, "2が押されました", Toast.LENGTH_LONG).show()} else (val button3 = findViewById<Button>(view.id)){ Toast.makeText(this, "3が押されました", Toast.LENGTH_LONG).show()} } } <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <TextView android:id="@+id/textView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ボタンを押してね!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintHorizontal_bias="0.498" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> <Button android:id="@+id/button2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="showMessage" android:text="Button2" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView" /> <Button android:id="@+id/button1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="showMessage" android:text="Button1" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toStartOf="@+id/button2" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/textView" app:layout_constraintVertical_bias="0.503" /> <Button android:id="@+id/button3" android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="showMessage" android:text="Button3" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toEndOf="@+id/button2" app:layout_constraintTop_toBottomOf="@+id/textView" />
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
ソースコードはMarkDownの<code>ブロック内に貼り付けてください。
```言語名
ソースコード
```
上記のようにしてみてください。
JavaなのかKotlinなのかはっきりしましょう。
layout xml ファイルがないのでよく分かりませんが、if 文の条件は view.id == R.id.button1 とかでは。
android:onClick="showMessage2" や android:onClick="showMessage3" ってことは、button 2 や 3 が押された場合はそれぞれ showMessage ではなく showMessage2 や showMessage3 というメソッドが呼ばれるはずなので、showMessage の中で if 文を使って場合わけする必要はありません。
fun showMessage(view: View) {
if (view.id == R.id.button1){
Toast.makeText(this, "1が押されました", Toast.LENGTH_LONG).show()}
else (view.id == R.id.button2){
Toast.makeText(this, "2が押されました", Toast.LENGTH_LONG).show()}
else (view.id == R.id.button3){
Toast.makeText(this, "3が押されました", Toast.LENGTH_LONG).show()}
}
このelseからの条件はどうしたらいいですか?
回答1件
あなたの回答
tips
プレビュー