你如何在Android中正确编写和使用View子类?

joe*_*ich 6 android webview subclassing android-layout

我正在尝试实现此处找到的解决方案之一.

我的问题是,我不确定我是否正确实现和使用我的子类.我在这里继承WebView:

public class myWebView extends WebView{

  public myWebView(Context context) {
    super(context);
    // TODO Auto-generated constructor stub
}

  @Override
protected void onSizeChanged(int w, int h, int ow, int oh) {
    // TODO Auto-generated method stub

      scrollTo(xScroll - (widthScroll/2), yScroll - (heightScroll/2));


    super.onSizeChanged(w, h, ow, oh);
}

   }}
Run Code Online (Sandbox Code Playgroud)

它应该是私人的,但暂时忘记了.我的一个活动中的代码包含在视图层次结构中的内部webview.在该活动的onCreate方法之外.

在onCreate方法中,我有:myWebView mapImage = (myWebView) findViewById(R.id.mapcroppic);

这给了我一个ClassCastException用于该调用.(xml布局文件是否需要使用<myWebView>?可以吗?)如何以正确的方式使用它?

Cri*_*ian 9

(xml布局文件是否需要使用<myWebView>?可以吗?)如何以正确的方式使用它?

是:

<your.package.name.myWebView
    android:layout_with="blah"/>
Run Code Online (Sandbox Code Playgroud)

好吧,如果myWebView是公共课,那就有用.如果它是一个内在的:

<view class="your.package.name.myWebView.YourActivity$myWebView" />
Run Code Online (Sandbox Code Playgroud)

  • 将该构造函数添加到您的子类.那是因为这是从XML扩展视图时调用的构造函数 (2认同)