質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

Q&A

解決済

1回答

754閲覧

3つのボタンにそれぞれトースト表示をしたい

maugura

総合スコア1

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Android Studio

Android Studioは、 Google社によって開発された、 Androidのネイティブアプリケーション開発に特化した統合開発ツールです。

0グッド

0クリップ

投稿2022/09/12 01:50

アンドロイドスタジオでアプリを作成しています。

・3つのボタンにそれぞれ下記にトーストで表示したいです。
イメージ説明

実現したいこと

ボタンを押すと
・スタート → 下記にstartと表示
・登録   → 下記にregと表示
・説明   → 下記にhelpと表示

発生している問題・エラーメッセージ

作成しているときにButtonClickListener.javaのファイルが出てきてしまいました。これも影響しているんでしょうか?
一通りコードは打ち込んだのですがデバックするとスマホにアプリが表示されません。

該当のソースコード

MainActivity.java

package com.example.obsercam; import android.content.Context; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.TextView; import android.widget.Toast; import androidx.appcompat.app.AppCompatActivity; import static com.example.obsercam.R.id.btn2; public class MainActivity extends AppCompatActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //各ボタンのオブジェクトを取得 Button button = findViewById(R.id.btn); Button button2 = findViewById(btn2); Button button3; button3 = findViewById(R.id.btn3); //スコープの外に作っておいたリスナクラスのインスタンスを生成 ButtonClickListener listener = new ButtonClickListener(); //各ボタンにlistenerを設定 button.setOnClickListener((View.OnClickListener) listener); button2.setOnClickListener((View.OnClickListener) listener); button3.setOnClickListener((View.OnClickListener) listener); } //リスナクラスを実装 private class TopListener implements View.OnClickListener{ //クリックされた時の処理をonClick()に記述 @Override public void onClick(View view){ TextView button =findViewById(R.id.btn); TextView button2 =findViewById(R.id.btn2); TextView button3 =findViewById(R.id.btn3); //押されたボタンのidを取得 int id = view.getId(); //ボタンのidによって処理を分岐させる。 switch (id){ //スタートを押したときにstartと表示 case R.id.button: System.out.println("start"); break; //登録を押したときにregと表示 case R.id.button2: System.out.println("reg"); break; //説明を押したときにhelpと表示 case R.id.button3: System.out.println("help"); break; } } } }

strings.xml

<?xml version="1.0" encoding="UTF-8" ?> <resources> <string name="app_name" translatable="false">ObserCam</string> <string name="bt_click">スタート</string> <string name="bt_click2">登録</string> <string name="bt_click3" >説明</string> </resources> activity_main.xml <?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"> <ImageView android:id="@+id/hatarakimake" android:layout_width="329dp" android:layout_height="267dp" android:layout_marginStart="44dp" android:layout_marginLeft="44dp" android:layout_marginTop="31dp" android:layout_marginEnd="38dp" android:layout_marginRight="38dp" android:layout_marginBottom="20dp" app:layout_constraintBottom_toTopOf="@+id/button" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toTopOf="parent" app:srcCompat="@drawable/hataraitaramake" /> <Button android:id="@+id/button" android:layout_width="263dp" android:layout_height="70dp" android:layout_marginStart="75dp" android:layout_marginLeft="75dp" android:layout_marginTop="46dp" android:layout_marginEnd="74dp" android:layout_marginRight="74dp" android:layout_marginBottom="20dp" android:text="スタート" app:layout_constraintBottom_toTopOf="@+id/button2" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="1.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/hatarakimake" /> <Button android:id="@+id/button2" android:layout_width="260dp" android:layout_height="72dp" android:layout_marginStart="74dp" android:layout_marginLeft="74dp" android:layout_marginTop="20dp" android:layout_marginEnd="77dp" android:layout_marginRight="77dp" android:layout_marginBottom="20dp" android:text="登録" app:layout_constraintBottom_toTopOf="@+id/button3" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintHorizontal_bias="0.0" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/button" /> <Button android:id="@+id/button3" android:layout_width="260dp" android:layout_height="69dp" android:layout_marginStart="74dp" android:layout_marginLeft="74dp" android:layout_marginTop="20dp" android:layout_marginEnd="77dp" android:layout_marginRight="77dp" android:layout_marginBottom="32dp" android:text="説明" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@+id/button2" /> </androidx.constraintlayout.widget.ConstraintLayout>

ButtonClickListener.java

package com.example.obsercam; class ButtonClickListener { }

試したこと

種類の違うスマホでデバックを試みたところしっかりと表示できませでした。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

jimbe

2022/09/12 02:11

ファイル毎にマークダウンを分けてください。
hoshi-takanori

2022/09/12 02:13

ButtonClickListener を View.OnClickListener にキャストしようとして落ちてるんでしょうね。 TopListener の方を使えば良いのでは…。
dodox86

2022/09/12 02:25 編集

> 作成しているときにButtonClickListener.javaのファイルが出てきてしまいました。 未定義のクラス、メソッドを使おうとするとAndroid Studioのエディターで補完しようとして、ここで選択を誤ると勝手に作られてしまう場合はありますね。惑わされちゃったのもあるかと思います。
maugura

2022/09/12 04:25

・初心者ですみません。ファイル毎にマークダウンするのを忘れました。 ・ButtonClickListener → TopListenerに書き換えればいいのでしょうか? ・未定義のクラス、メソッドの選択を誤っている部分はどこでしょうか?
jimbe

2022/09/12 05:21

初心者だからと謝る必要はありません。 質問は編集できますので、分かりにくい部分を直していただければというだけのことです。
guest

回答1

0

ベストアンサー

ボタンとリスナの関係を理解しているでしょうか。
コード上は各ボタンには ButtonClickListener が(リスナで無いにも関わらずムリヤリ)設定されているだけで、 TopListener は使われていません。
また、トースト表示と仰っていますがコード内にはトースト表示はありません。

投稿2022/09/12 02:16

jimbe

総合スコア12648

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問