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