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

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

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

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

Android Studio

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

Q&A

解決済

2回答

18557閲覧

メソッドでエラーがでてしまいます

uyuka

総合スコア7

Java

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

Android Studio

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

0グッド

0クリップ

投稿2016/09/05 01:08

編集2016/09/05 02:05

###前提・実現したいこと
Android Studioでアプリ制作の練習をしているのですが
メソッドでエラーが発生してしまいます。
インターネットで似たようなエラーを調べてみると、
メソッドの引数があっていないことが原因だとありました。
Javaを少しかじった位なので、その説明を読んでも理解できず・・・。
実際にどのように直せば動くのか、教えて頂ければ幸いです。

###発生している問題・エラーメッセージ
後述ソースコードの太字の部分がエラーになってしまいます。

エラーメッセージ
・エラー :(33, 86) エラー: <anonymous com.example.user02.app921.ActivityMain$1>はabstractでなく、OnCheckedChangeListener内のabstractメソッドonCheckedChanged(RadioGroup,int)をオーバーライドしません
・エラー :(34, 21) エラー: メソッドはスーパータイプのメソッドをオーバーライドまたは実装しません
エラー :Execution failed for task ':app:compileDebugJavaWithJavac'.

Compilation failed; see the compiler error output for details.

###該当のソースコード
package com.example.user02.app921;

import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;
import android.preference.PreferenceManager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.RadioGroup;
import android.widget.TextView;

public class ActivityMain extends AppCompatActivity {

private EditText etxValue; private TextView txvValue; private SharedPreferences preferences; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); //ビューの取得 etxValue = (EditText)findViewById(R.id.amin_etxValue); txvValue = (TextView)findViewById(R.id.amin_txvValue); //デフォルトを任意のファイル名で作成するように設定 preferences = getSharedPreferences("shared",MODE_PRIVATE); //ラジオボタンの選択処理 ((RadioGroup)findViewById(R.id.amin_rdgName)) .setOnCheckedChangeListener(new **RadioGroup.OnCheckedChangeListener() **{ **@Override** public void OnCheckedChanged(RadioGroup group, int checkedId){ switch (checkedId){ case R.id.amin_rdbAnyName: //任意のファイル名で作成 preferences = getSharedPreferences("shared",MODE_PRIVATE); break; case R.id.amin_rdbActivityName: //アクティビティ名で作成 preferences = getPreferences(MODE_PRIVATE); break; case R.id.amin_rbdDefaultName: //デフォルト名で作成 preferences = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); break; } } }); //書き込みボタン処理 findViewById(R.id.amin_btnSave).setOnClickListener(new View. OnClickListener(){ @Override public void onClick(View v){ Editor editor = preferences.edit(); editor.putString("key", etxValue.getText().toString()); editor.commit(); txvValue.setText(""); } }); //読み出しボタン処理 findViewById(R.id.amin_btnLoad).setOnClickListener(new View. OnClickListener(){ @Override public void onClick(View v){ txvValue.setText(preferences.getString("key","データが見つかりません")); } }); //削除ボタン処理 findViewById(R.id.amin_btnDelete).setOnClickListener(new View. OnClickListener(){ @Override public void onClick(View v){ SharedPreferences.Editor editor = preferences.edit(); editor.remove("key"); editor.commit(); txvValue.setText(""); } }); }

}

###試したこと

###補足情報(言語/FW/ツール等のバージョンなど)
buildToolsVersion "23.0.3"

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

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

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

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

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

guest

回答2

0

ベストアンサー

メソッド名は小文字で始まるので、
OnCheckedChanged -> onCheckedChanged
が正しいです。

投稿2016/09/05 01:36

swordone

総合スコア20651

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

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

uyuka

2016/09/05 02:03

ご回答ありがとうございます。 小文字に修正してみましたが、メソッドとして認識されませんでした。
swordone

2016/09/05 02:04

メソッドとして認識されなかったというのはどういう意味ですか?
uyuka

2016/09/05 02:11

エラーの波線は消えたのですが、 ビルド時に エラー :(33, 59) エラー: シンボルを見つけられません シンボル: クラス onCheckedChangeListener 場所: クラス RadioGroup という新たなエラーがでてしまいました。
swordone

2016/09/05 02:25

そこじゃないです。 そこのoは大文字のOに戻して、その中のメソッド OnCheckedChangedの最初のOを小文字にして下さい。
uyuka

2016/09/05 02:29

直りました!! @Overrideの下のところですね。 先生に聞いてもわからなかったところなので、本当にたすかりました。 ありがとうございます!!
guest

0

「abstractメソッドonCheckedChanged(RadioGroup,int)をオーバーライドしません 」というエラーメッセージから判断すると、onCheckedChanged(RadioGroup,int)は抽象メソッド(abstract method)なのでしょう。

抽象メソッドは、中身の無い(実装されたコードが無い)メソッドですから、子クラスで @Override 無しでonCheckedChanged(RadioGroup,int)を実装すれば、自動的にオーバーライドされるはずです。

エラーが出たところ(質問のコードで太文字になっているところ)の @Override の行を削除してからコンパイルしてみてください。

--
それにしてもAndroid Studioのエラーメッセージは、日本語になっていませんね。
もしもAndroid Studioの英語版があるのなら、使ってみてはどうかと思います。英語のエラーメッセージの方が、多少は意味が判ると思いますので。

投稿2016/09/05 02:28

coco_bauer

総合スコア6915

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

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

uyuka

2016/09/05 02:35

ご回答ありがとうございます。 @Overrideの後の public void OnCheckedChanged(RadioGroup group, int checkedId) のOnをonに変えたら無事実行できました。 その後、@Overrideを抜いても実行できました。 テキスト通りに@Overrideを付けたのですが、自動でオーバーライドされるのであれば 自分で記述しなくても良いのですね!
swordone

2016/09/05 02:38

@Overrideを外すのはおすすめしません。 今回のように、オーバーライドが正しくなされていない時にエラーを発してくれるので、間違いに気付きやすくなります。
uyuka

2016/09/05 02:48

swordone様 ありがとうございます。 何せ初心者なもので、テキスト通りに書いていてもエラーが発生してしまいます。 @Overrideでコンパイルした時のエラーを読むようにしてみます。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問