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

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

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

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

Android Studio

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

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

Q&A

解決済

4回答

2778閲覧

setOnClickListener にエラーが出てしまいます

paku4111

総合スコア13

Java

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

Android Studio

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

Kotlin

Kotlinは、ジェットブレインズ社のアンドリー・ブレスラフ、ドミトリー・ジェメロフが開発した、 静的型付けのオブジェクト指向プログラミング言語です。

0グッド

0クリップ

投稿2018/12/23 03:56

お世話になります。初めて質問させて頂きます。

当方1ヶ月程前から、教本を見ながら独学でプログラミングを学んで居ります。
教本にあるアプリを再現しようとコーディングをしているところ、
下記のエラーが発生致します。
作ろうとしているのはジャンケンアプリです。初歩の初歩です。

class MainActivity : AppCompatActivity() {

override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) gu.**setOnClickListener**{ onJankenButtonTapped(**it**)} choki.**setOnClickListener**{ onJankenButtonTapped(**it**)} pa.**setOnClickListener**{ onJankenButtonTapped(**it**)} } fun onJankenButtonTapped(view: View?){ val intent = Intent(this, ResultActivity::class.java) startActivity(intent) }

}

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

Unresolved reference setOnClickListener

### 試したこと 該当箇所を抜き出してGoogleで検索→よくわかりませんでした・・・ ### 補足情報(FW/ツールのバージョンなど) 英語として意味はなんとなく理解出来ますが、どこをどう直せばエラーメッセージが消えるかわかりません。考えうる解決策をご教示頂きたく、よろしくお願い申しあげます。 ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答4

0

みなさま、ご回答誠にありがとうございました。
どうやらボタンのIDは頭が大文字で入力していたのにたいし、コードの方は小文字で入力していたことがエラーの原因だったようです…。解決いたしました。

投稿2018/12/25 13:29

paku4111

総合スコア13

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

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

0

ベストアンサー

まずデザインエディター上で配置したボタンに、gu、choki、paというIDを付けたコンポーネントが正しく配置されているでしょうか。デザインエディターにあるTextというタブをクリックすると、そのデザインをXML化したテキストファイルが表示されます。

例えば、下記ではボタンにguというIDを割り当てています。同様にchoki、paも存在することが確認できるでしょうか。

xml

1 <Button 2 android:id="@+id/gu" 3 android:layout_width="wrap_content" 4 android:layout_height="wrap_content" 5 />

また、こうして配置したIDによるコンポーネントを直接参照するためには、Kotlin Android Extensionsという拡張機能を正しく利用できるようにするためのimport文が必要です。activity_main.xmlに記述されたIDを参照するならば、

kotlin

1import kotlinx.android.synthetic.main.activity_main.*

という記述が必要です。これらの点を見直してみましょう。


Android Studioのコードエディターは強力な補完機能を持っています。今回の例で言えば、XMLにguというIDのコンポーネントが正しく配置されていれば、コードエディター上でguと入力した時点で下図のような候補が表示されるはずです。ここで一番上にあるgu from activity_main.xml for Activityという項目を選べば、前述したimport文の自動挿入まで行ってくれます。

guの補完

こうした機能を活用することも問題解決に繋がるはずです。

投稿2018/12/23 04:59

編集2018/12/23 05:08
keicha_hrs

総合スコア6766

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

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

0

その教本に沿いながら学習しているのであれば、
どこか抜けている箇所がないか、探してみてください。
参考になるか怪しいですけど私がよくやった失敗は、
実は「この部分を前ページのコードに追加しましょう」的な内容を、追加部分だけ書いてしまうとか。

gu って、何の変数かな?って思いましたけど、
もしかしてfindviewbyIdする行が必要では?
教本にかいてませんか?

投稿2018/12/23 04:27

Kota_Kappa

総合スコア116

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

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

keicha_hrs

2018/12/23 05:00

KotlinによるAndroidアプリ開発では、Kotlin Android Extensionsという拡張機能によって、findViewById()を用いずともコンポーネントのオブジェクトを参照することができます。
guest

0

変数gu,choki,paの型(クラス)に、setOnClickListenerの定義が無いので発生したエラーだと思われますが、質問にはコードの断片しかないので詳細は判りません。

gu,choki,paのクラスのコードに問題がある、必要なモジュールをimportしていない等の可能性が考えられます。

投稿2018/12/23 04:15

coco_bauer

総合スコア6915

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問