android - 在 setOverScrollMode 中使用反射时遇到问题

标签 android

我希望能够关闭过度滚动(在 2.3+ 中到达页面顶部或底部时的发光效果)但是我也希望我的代码在甚至没有过度滚动功能的旧版本的 android 中运行.根据此处的文档:Android Backwards Compatibility我在我的自定义 webview 类中使用反射来调用 setOverScrollMode 但是每次我在运行 2.3.4 的设备上调用它时,我都会收到 NoSuchMethodException。知道为什么我无法检索此方法吗?

奇怪的是,如果我只是调用 setOverScrollMode 而没有任何反射,它会起作用,所以该方法肯定存在。

public class MyWebView extends WebView{

    public void compatibilitySetOverScroll(){
    try {
        Method mWebview_SetOverScroll = WebView.class.getMethod("setOverScrollMode", new Class[] { Integer.class } );
        /* success, this is a 2.3+ */
        if (mWebview_SetOverScroll != null) {
            try {
                mWebview_SetOverScroll.invoke(this, 2);
            } catch (InvocationTargetException ite) {       
                throw new RuntimeException(ite.getCause());
            } catch (IllegalAccessException ie) {
                System.err.println("unexpected " + ie);
            }               
        }
    } catch (NoSuchMethodException nsme) {
        /* failure, must be older device */
    }        
}
}

最佳答案

尝试使用 Integer.TYPE 而不是 Integer.class

关于android - 在 setOverScrollMode 中使用反射时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6687612/

相关文章:

java - android客户端与java服务器通信

java - onPostExecute 没有被调用

android - 如何将现有数据库从一个应用程序复制到另一个应用程序

javascript - 推送时获取 Firebase UID,然后在 Java 中使用给定的 UID 再次推送

java - 如何在 Android 中调整 LayerDrawable 中的 Drawable 大小和位置

java - 将 JSON 中的特殊字符从 android 发送到 PHP

java - 缓存可缩放网页图像

android - 具有多个模块的 Gradle 库

Android布局方向问题

java - 自定义对话框构造函数