2016-07-07 10 views
0

私のコードで「super()メソッドを解決できません」というエラーが表示されていますが、これを解決する方法がわかりません。次のようにアンドロイドスタジオのメソッド 'super()'を解決できません

コードは次のとおりです。

public GeoView(double left, double top, double width) 
{ 
    super(); 

    this.left = left; 
    this.top = top; 
    this.width = width; 

    this.transform = null; 
    this.backing_store = null; 

    this.sink = false; 

    this.last_size = new Rect(0, 0, 200, 200); 
    this.do_tracking = false; 

    Drawable background = new Drawable() { 
     @Override 
     public void draw(Canvas canvas) { 

     } 

     @Override 
     public void setAlpha(int i) { 

     } 

     @Override 
     public void setColorFilter(ColorFilter colorFilter) { 

     } 

     @Override 
     public int getOpacity() { 
      return 0; 
     } 
    }; 
+2

囲みのクラスを表示してください。 – kalabalik

+0

クラスが何をしているのかを知るために、包括クラスの詳細を共有してください – Kushan

+0

継承plsを表示してください。 –

答えて

0

GeoViewクラスとは何ですか?あなたは別のクラスからそれを拡張しましたか? 「はい」の場合。あなたがそれを呼び出すので、親クラスが空のコンストラクタを持っていることを確認してください。
自分のクラスで、他のクラスから拡張されていない場合。その後、super()に電話する必要はありません。

ビューに空のコンストラクタがありません。 このコンストラクタのリスト1にある必要があります。

public GeoView(Context context) { 
     super(context); 
    } 

    public GeoView(Context context, AttributeSet attrs) { 
     super(context, attrs); 
    } 

    public GeoView(Context context, AttributeSet attrs, int defStyleAttr) { 
     super(context, attrs, defStyleAttr); 
    } 

自分でビューを作成する場合は、最初のコンストラクタが必要です。そして、あなたは

GeoView geoView = new GeoView(YourActivity.this); 

に持っているか、あなたは単にレイアウトにビューをお尻できます。次に、コンストラクタと呼ばれます。私はあなたがそれらのすべてを追加すべきだと思う。

<com.example.yourapp.GeoView 
    android:layout_height="300dp" 
    android:layout_width="match_parent"/> 
+0

クラスViewから拡張されています。 – JackD

+0

ありがとう、それは働いた!私はGeoViewを拡張するクラスMapViewerを持っていますが、コンストラクタにコンテキストを含めるように変更しましたが、MapViewerオブジェクトを作成するときにContextオブジェクトを作成する方法や場所はどこですか? Context contextObj =新しいコンテキスト(); contextObjをMapViewerコールに渡しますか? – JackD

+0

あなたの活動はコンテキストではありません。新しいGeoMap(YourActivity.this); – thealeksandr

関連する問題