Java 如何在活动中使用扩展webview类

Java 如何在活动中使用扩展webview类,java,android,webview,Java,Android,Webview,我是android新手,现在我正在做一个webview应用程序,我必须禁用双击缩放,但保持setwideviewport(true)。我通过搜索得到了一个解决方案,但我无法将该类实现到我的活动中。请帮助。这是我的活动 User_reg.java package com.example.samworkshops; import android.os.Bundle; import android.os.SystemClock; import android.annotation.SuppressL

我是android新手,现在我正在做一个webview应用程序,我必须禁用双击缩放,但保持setwideviewport(true)。我通过搜索得到了一个解决方案,但我无法将该类实现到我的活动中。请帮助。这是我的活动

User_reg.java

package com.example.samworkshops;

import android.os.Bundle;
import android.os.SystemClock;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.content.res.Configuration;
import android.graphics.Color;
import android.graphics.Point;
import android.view.Display;
import android.view.GestureDetector;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.Window;
import android.webkit.WebChromeClient;
import android.webkit.WebView;
import android.webkit.WebViewClient;

public class User_reg extends Activity {
 private WebView webView;
 final Activity activity = this;


@SuppressLint("SetJavaScriptEnabled")
@Override
public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);
        this.getWindow().requestFeature(Window.FEATURE_PROGRESS);

        setContentView(R.layout.activity_user);


        webView = (WebView)findViewById(R.id.webView1);
        webView.requestFocusFromTouch();
        webView.getSettings().setJavaScriptEnabled(true);
        webView.getSettings().setUseWideViewPort(true);                                                         
        webView.getSettings().setBuiltInZoomControls(false);
        webView.setHorizontalScrollBarEnabled(false);


        webView.loadUrl("http://app.samworkshops.org/User_Reg.aspx");

        webView.setVisibility(View.INVISIBLE);
        webView.setWebChromeClient(new WebChromeClient() {
            public void onProgressChanged(WebView view, int progress)
            {
                activity.setTitle("Loading...");
                activity.setProgress(progress * 100);

                if(progress == 100)
                    activity.setTitle(R.string.title_activity_user_reg);
            }
        });

        webView.setBackgroundColor(Color.parseColor("black"));


        webView.setWebViewClient(new WebViewClient() {


            @Override
            public void onReceivedError(WebView view, int errorCode, String description, String failingUrl)
            {
                // Handle the error
            }

            @Override
            public boolean shouldOverrideUrlLoading(WebView view, String url)
            {
                view.loadUrl(url);
                return true;
            }


            @Override
            public void onPageFinished(WebView view, String url) {

            StringBuilder builder = new StringBuilder("");


                    builder.append("javascript:document.getElementById('Image3').style.visibility= 'hidden';");
                    builder.append("javascript:document.getElementById('Image3').style.display   = 'none'  ;");

            view.loadUrl(builder.toString());

               webView.setVisibility(View.VISIBLE);
               SystemClock.sleep(2000);
                }
            }


        });

    }
  }
我得到的解决方案类如下

HelpWebView.java

public class HelpWebView extends WebView {

    private GestureDetector gestureDetector;
    private AtomicBoolean mPreventAction = new AtomicBoolean(false);
    private AtomicLong mPreventActionTime = new AtomicLong(0);

    public HelpWebView(Context context) {
        super(context);
        gestureDetector = new GestureDetector(context, new GestureListener());
    }

    public HelpWebView(Context context, AttributeSet attrs) {
        super(context, attrs);
        gestureDetector = new GestureDetector(context, new GestureListener());
    }

    public HelpWebView(Context context, AttributeSet attrs, int defStyle) {
        super(context, attrs, defStyle);
        gestureDetector = new GestureDetector(context, new GestureListener());
    }

    public HelpWebView(Context context, AttributeSet attrs, int defStyle, boolean privateBrowsing) {
        super(context, attrs, defStyle, privateBrowsing);
        gestureDetector = new GestureDetector(context, new GestureListener());
    }

    @Override
    public boolean onTouchEvent(MotionEvent event) {
        int index = (event.getAction() & MotionEvent.ACTION_POINTER_INDEX_MASK) >> MotionEvent.ACTION_POINTER_INDEX_SHIFT;
        int pointId = event.getPointerId(index);

        // just use one(first) finger, prevent double tap with two and more fingers
        if (pointId == 0){
            gestureDetector.onTouchEvent(event);

            if (mPreventAction.get()){
                if (System.currentTimeMillis() - mPreventActionTime.get() > ViewConfiguration.getDoubleTapTimeout()){
                    mPreventAction.set(false);
                } else {
                    return true;
                }
            }

            return super.onTouchEvent(event);
        } else {
            return true;
        }
    }

    private class GestureListener extends GestureDetector.SimpleOnGestureListener {
        @Override
        public boolean onDoubleTap(MotionEvent e) {
            mPreventAction.set(true);
            mPreventActionTime.set(System.currentTimeMillis());
            return true;
        }
        @Override
        public boolean onDoubleTapEvent(MotionEvent e) {
            mPreventAction.set(true);
            mPreventActionTime.set(System.currentTimeMillis());
            return true;
        }
    }
}

在xml中,在这种情况下,您必须提供完整的包名:

比如说,

<com.example.samworkshops
    android:id="@+id/webview"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"/>


查看您是否仍需要帮助。此项目中有一个扩展的webview

导入HelpWebView这个类并创建这个类的webview实例。谢谢..但是它显示以下错误02-12 13:03:33.259:E/AndroidRuntime(630):java.lang.RuntimeException:无法启动activity ComponentInfo{com.example.samworkshop/com.example.samworkshop.User_reg}:android.view.InflateException:二进制XML文件行#2:错误膨胀类com.example.samworkshops使用此:
1mWebView=(WebView)findViewById(R.id.WebView);WebSettings设置=mWebView.getSettings();mWebView.setWebViewClient(新WebViewClient(){public boolean shouldOverrideUrlLoading(WebView视图,字符串url){return true;}mWebView.loadUrl('http://www.google.com”;