Android 如何重写函数?

Android 如何重写函数?,android,cordova,overriding,cordova-3,cordova-2.0.0,Android,Cordova,Overriding,Cordova 3,Cordova 2.0.0,您能告诉我如何正确覆盖“CreateView”吗?如果我在它前面加上@Override,它会说:“WhatSnap类型的方法createViews()必须重写或实现一个超类型方法” 如果我删除@Override,它不会被执行。 这是第一节课: 这是我想覆盖CreateView的第二个: package com.Snap.What; import android.graphics.Color; import android.os.Bundle; import android.util.Log;

您能告诉我如何正确覆盖“CreateView”吗?如果我在它前面加上@Override,它会说:“WhatSnap类型的方法createViews()必须重写或实现一个超类型方法” 如果我删除@Override,它不会被执行。 这是第一节课:

这是我想覆盖CreateView的第二个:

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);
    }




}
package com.Snap.What;
导入android.graphics.Color;
导入android.os.Bundle;
导入android.util.Log;
导入android.view.Display;
导入android.view.view;
导入android.widget.RelativeLayout;
导入org.apache.cordova.*;
导入com.startapp.android.publish.StartAppAd;
导入com.startapp.android.publish.StartAppSDK;
导入com.startapp.android.publish.banner.banner;
公共类WhatSnap扩展了Cordova活动
{
私人科多瓦网络视图科多瓦网络视图;
私有StartAppAd StartAppAd=新StartAppAd(本);
@凌驾
创建时的公共void(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
super.init();
//在config.xml中设置
super.loadUrl(Config.getStartUrl());
//super.loadUrl(“file:///android_asset/www/index.html");
StartAppSDK.init(这是“xxx”,“xxx”,true);
Log.e(“活动”、“活动”);
}
@凌驾
受保护的void createViews(){
RelativeLayout布局=新的RelativeLayout(此);
RelativeLayout.LayoutParams lp=新的RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.MATCH_父级,RelativeLayout.LayoutParams.MATCH_父级);
布局。setLayoutParams(lp);
appView.setLayoutParams(新的RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_父级,RelativeLayout.LayoutParams.MATCH_父级));
Log.e(“CreateView”、“CreateView”);
appView.setVisibility(View.INVISIBLE);
layout.addView((视图)appView);
setContentView(布局);
Banner startAppBanner=新横幅(本);
RelativeLayout.LayoutParams横幅参数=
新RelativeLayout.LayoutParams(
RelativeLayout.LayoutParams.WRAP_内容,
RelativeLayout.LayoutParams.WRAP_内容);
bannerParameters.addRule(相对中心水平);
bannerParameters.addRule(RelativeLayout.ALIGN\u PARENT\u BOTTOM);
//添加到主布局
布局。添加视图(startAppBanner、bannerParameters);
}
@凌驾
受保护的CordovaWebView makeWebView(){
Log.e(“CordovaWebView”、“CordovaWebView”);
返回新的CordovaWebView(WhatSnap.this);
}
}

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

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

只需将CreateView的签名更改为protected..@l0ok我试过那个人,但它不起作用。。我也犯了同样的错误!我试过那个人,但没用。。我也犯了同样的错误!您是否也更改了makeWebView()的签名?您也以错误的方式覆盖了它。我更改了ti,但仍然得到creatViews()上方的错误ar覆盖行