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

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

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

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

Q&A

解決済

3回答

2679閲覧

Overrideを入れる場所がわからない

退会済みユーザー

退会済みユーザー

総合スコア0

Android Studio

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

0グッド

0クリップ

投稿2017/01/16 00:25

前回の質問で回答をもらったのですが
method does not override method from its superclass
というエラーが出てどうしたらいいかわかりません。
もしかしたらコード内の入れる場所が違ったのかもしれないのでどこに入れたら正しいか教えてください

入れるコード

@Override GLView(Context context ,AttributeSet set)

入れられるコード

import javax.microedition.khronos.egl.EGLConfig; import javax.microedition.khronos.opengles.GL10; import android.content.Context; import android.opengl.GLSurfaceView; import android.util.AttributeSet; import android.util.Log; class GLView extends GLSurfaceView implements GLSurfaceView.Renderer { /** * TAG */ private static final String TAG = "GLVIEW"; /** * 立方体 */ private Cube mCube; /** * コンストラクタ * * @param context Context */ public GLView(Context context) { super(context); // 描画処理を設定 setRenderer(this); } /** * 描画処理のループ */ public void onDrawFrame(GL10 gl) { Log.i(TAG, "onDrawFrame()"); // 画面クリアの色を設定 gl.glClearColor(0, 0, 1, 1.0f); // 画面をクリア gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); gl.glEnable(GL10.GL_DEPTH_TEST); // モデルビューモードに設定 gl.glMatrixMode(GL10.GL_MODELVIEW); // マトリクスを初期化 gl.glLoadIdentity(); //マトリクスの移動. //描画メソッドの呼び出し。 //それぞれのクラスに描画メソッドをもっているので、GL10のコンテキストを渡して描画を行います. //mTriangle.draw(gl); mCube.draw(gl); } /** * 画面が変更されたときに呼び出されるメソッド. * 1.画面が生成されたとき(onSurfaceCreatedの後) * 2.画面サイズが変わったとき(縦と横で端末が切り替わったとき) */ public void onSurfaceChanged(GL10 gl, int width, int height) { Log.i(TAG, "onSurfaceChanged()"); // GL_CURLL_FACEをDisableにすることで裏面も表示されます // ここをEnableにすると、x or y軸での回転時に裏面が表示されません. // 主に3Dのように裏面の描画を行わないときにEnableにして使います. //gl.glDisable(GL10.GL_CULL_FACE); gl.glEnable(GL10.GL_CULL_FACE); // 頂点の配列の利用を有効にする gl.glEnableClientState(GL10.GL_VERTEX_ARRAY); //テクスチャバッファの配列の利用を有効にする gl.glEnableClientState(GL10.GL_TEXTURE_COORD_ARRAY); // ビューポートの設定 gl.glViewport(0, 0, width, height); // マトリクスのモードをプロジェクションモードに設定 gl.glMatrixMode(GL10.GL_PROJECTION); // ローカル座標を初期化 gl.glLoadIdentity(); // 画面比(アスペクト比)を計算 float ratio = (float) width / height; // 透視投影に使う値を計算 float size = 0.01f * (float) Math.tan((70.0f / 180.0f / 3.141592f) / 2.0); // 透視投影の設定 gl.glFrustumf(-size, size, -size / ratio, size / ratio, 0.01f, 100.0f); // 平行投影の設定。投資投影では無い場合、こちらを設定 // gl.glOrthof(-1, 1, -1.0f/ratio, 1.0f/ratio, 0.01f, 100.0f); } /** * GLSurfaceViewのRendererが生成された際に呼ばれる */ public void onSurfaceCreated(GL10 gl, EGLConfig config) { Log.i(TAG, "onSurfaceCreated()"); mCube = new Cube(gl, getResources()); } /** * GLSurfaceViewのRendererが破棄された際に呼ばれる */ protected void onDetachedFromWindow() { super.onDetachedFromWindow(); Log.i(TAG, "onDetachedFromWindow()"); } }

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

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

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

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

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

guest

回答3

0

入れようとしているコードはコンストラクタで、コンストラクタをオーバーライドということはできません。
オーバーライドできないので、@Overrideアノテーションは機能できません。

投稿2017/01/16 03:00

swordone

総合スコア20649

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

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

0

ベストアンサー

java

1 public GLView(Context context ,AttributeSet set){ 2 super(context,set); 3 }

を入れて、override無しではダメですか?

エラーに関しては、この変が分かりやすいですかね
<a href="http://kana030.hatenadiary.com/entry/2015/03/13/114330">http://kana030.hatenadiary.com/entry/2015/03/13/114330</a>

結局オーバーライドしようとして親メソッドがない場合に発生するはずです。

投稿2017/01/16 00:51

編集2017/01/16 00:52
退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2017/01/16 00:57

一応表示できました。
guest

0

Java

1@Override 2public GLView(Context context ,AttributeSet set){ 3}

今のコンスとラクタの下辺りにこれを入れればいいのではないでしょうか?

投稿2017/01/16 00:33

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

退会済みユーザー

退会済みユーザー

2017/01/16 00:39

protected void onDetachedFromWindow() { super.onDetachedFromWindow(); Log.i(TAG, "onDetachedFromWindow()"); } これの下でしょうか? 変わらなかったです
退会済みユーザー

退会済みユーザー

2017/01/16 00:41

public GLView(Context context) { super(context); // 描画処理を設定 setRenderer(this); } の下辺りでいいと思いますよ。
退会済みユーザー

退会済みユーザー

2017/01/16 00:43

ありがとうございます。 しかし結果は同じでした。
退会済みユーザー

退会済みユーザー

2017/01/16 00:46

すみません。 @Override public GLView(Context context ,AttributeSet set){ super(context, attrs); } これでどうですかね?
退会済みユーザー

退会済みユーザー

2017/01/16 00:53 編集

やってみましたが同じでした。 さらにattrsのところにCannot resolve simbolと出ました。 もしかしたら、前回の質問で治すところがほかにあったのかもしれないので、あたらしく質問してみます。 ありがとうございました
退会済みユーザー

退会済みユーザー

2017/01/16 00:52

super(context, attrs);→super(context, set);に変更して下さい。 コピペミスでした。
退会済みユーザー

退会済みユーザー

2017/01/16 00:54

あっ、Cannot resolve simbolは消えました
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.50%

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

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

質問する

関連した質問