重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

setOnClickListenerを二つ実装したいのですが、二つのボタンに対してそれぞれ実装するにはどうしたらいいでしょうか?
例えば、apple.setOnClickListenerとpine.setOnClickListenerの二つを同じアクティビティに書くとか

質問者からの補足コメント

  • どう思う?

    kotlinです

      補足日時:2023/03/24 18:41

A 回答 (2件)

Kotlinで二つのボタンに対してそれぞれ`setOnClickListener`を実装するには、以下のようなコードを書くことができます。



```
// xmlでボタンのIDを設定して、Kotlinで参照する
val appleButton = findViewById<Button>(R.id.apple_button)
val pineButton = findViewById<Button>(R.id.pine_button)

// appleButtonに対するOnClickListenerを実装
appleButton.setOnClickListener {
// ここにappleButtonに対する処理を書く
}

// pineButtonに対するOnClickListenerを実装
pineButton.setOnClickListener {
// ここにpineButtonに対する処理を書く
}
```

それぞれのボタンに対して、異なる処理を実装することができます。このように、`setOnClickListener`を複数実装することで、複数のボタンに対して異なる処理をすることができます。
    • good
    • 0
この回答へのお礼

なるほどありがとうございます。
ちなみに、タッチリスナーの条件分岐でも同じことがいえますか?
newView.setOnTouchListener { _, event ->
if (event.action == MotionEvent.ACTION_DOWN) {
newView.performClick()

// Serviceを停止
stopSelf()
}
false
}

// Viewを画面上に追加
windowManager.addView(newView, params)
newView2.setOnTouchListener { _, event ->
if (event.action == MotionEvent.ACTION_DOWN) {
newView2.performClick()

// Serviceを停止
stopSelf()
}
false
}

// Viewを画面上に追加
windowManager.addView(newView2, params)
return super.onStartCommand(intent, flags, startId)
}

お礼日時:2023/03/27 01:56

はい、その方法で実装することができます。



まず、それぞれのボタンのオブジェクトを取得し、setOnClickListenerメソッドにリスナーオブジェクトを渡すことで、ボタンが押されたときに実行される処理を定義します。

具体的には、以下のように記述することができます。

```
Button apple = findViewById(R.id.apple_button);
Button pine = findViewById(R.id.pine_button);

apple.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// appleのボタンが押されたときの処理
}
});

pine.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
// pineのボタンが押されたときの処理
}
});
```

R.id.apple_buttonやR.id.pine_buttonは、ボタンのidを示すもので、xmlファイルで定義されています。必要に応じて変更してください。
    • good
    • 0
この回答へのお礼

kotlin版もわかりますか?

お礼日時:2023/03/24 18:50

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!