2014-07-17 93 views
1

您能否告诉我如何正确覆盖“createViews”?如果我在它之前放置@Override,它会说:“WhatSnap类型的createViews()方法必须覆盖或实现超类型方法” 如果我删除@Override,它不会被执行。 这是第一类:https://github.com/apache/cordova-android/blob/master/framework/src/org/apache/cordova/CordovaActivity.java#L267如何覆盖函数?

这是第二个在至极我要重写createViews:

package com.Snap.What; 

import android.graphics.Color; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.Display; 
import android.view.View; 
import android.widget.RelativeLayout; 

import org.apache.cordova.*; 

import com.startapp.android.publish.StartAppAd; 
import com.startapp.android.publish.StartAppSDK; 
import com.startapp.android.publish.banner.Banner; 

public class WhatSnap extends CordovaActivity 
{ 
    private CordovaWebView cordova_webview; 
    private StartAppAd startAppAd = new StartAppAd(this); 

    @Override 
    public void onCreate(Bundle savedInstanceState) 
    { 
     super.onCreate(savedInstanceState); 
     super.init(); 
     // Set by <content src="index.html" /> in config.xml 
     super.loadUrl(Config.getStartUrl()); 
     //super.loadUrl("file:///android_asset/www/index.html"); 
     StartAppSDK.init(this, "xxx", "xxx", true); 
     Log.e("activity", "activity"); 
    } 

    @Override 
    protected void createViews(){ 
     RelativeLayout layout = new RelativeLayout(this); 

     RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(
      RelativeLayout.LayoutParams.MATCH_PARENT,RelativeLayout.LayoutParams.MATCH_PARENT); 
     layout.setLayoutParams(lp); 

     appView.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT)); 
     Log.e("createViews", "createViews"); 
       appView.setVisibility(View.INVISIBLE); 
      layout.addView((View) appView); 
      setContentView(layout); 

      Banner startAppBanner = new Banner(this); 
      RelativeLayout.LayoutParams bannerParameters = 
         new RelativeLayout.LayoutParams(
            RelativeLayout.LayoutParams.WRAP_CONTENT, 
            RelativeLayout.LayoutParams.WRAP_CONTENT); 
      bannerParameters.addRule(RelativeLayout.CENTER_HORIZONTAL); 
      bannerParameters.addRule(RelativeLayout.ALIGN_PARENT_BOTTOM);  
      // Add to main Layout 
      layout.addView(startAppBanner, bannerParameters); 
    } 


    @Override 
    protected CordovaWebView makeWebView(){ 
     Log.e("CordovaWebView", "CordovaWebView"); 
     return new CordovaWebView(WhatSnap.this); 
    } 




} 
+0

的createViews的签名只是更改为保护.. –

+0

@ l0oky我试过的人,它不工作。我得到同样的错误! –

回答

1

您必须使用相同的访问修饰符作为超类的方法。更改覆盖签名,

@Override 
protected void createViews(){ 
    //Your code here 
} 
+0

我试过那个男人,它不工作..我得到同样的错误! –

+0

您是否也更改了makeWebView()的签名?你也错误地忽略了这一点。 – gnuanu

+0

我改变了ti,但我仍然得到错误ar覆盖线上方creatViews() –