使用WebView中的javascript触发setVisibility属性不起作用

时间:2012-08-21 14:43:34

标签: javascript android webview

我在Java环境中非常棒,我很可能会在这里错过一些非常重要的事情,但无论如何这里是我的代码:

这是我在XML中创建的对象:

<ImageView
    android:id="@+id/splash_screen"
    android:src="@drawable/my_image"
    android:layout_height="match_parent"
    android:layout_width="match_parent"/>

这是假设触发该功能的javascript代码:

function hideSplash() {
    Android.hideSplash();
}

$(window).load(function(){
    hideSplash();
});

这是应该由javascript触发的函数:

public void hideSplash() {
    Toast.makeText(mContext, "Splash! Remove!!!", Toast.LENGTH_SHORT).show();
    View splash = (ImageView) findViewById(R.id.splash_screen);
    splash.setVisibility(View.GONE);            
}

正如你所看到的,我已经在函数的头部放置了一个Toast警报来检查是否发生了某些事情。我得到的是jsut这个“Splash!Remove !!!”消息和“splash”对象由于某种原因拒绝更改其可见性。 有人请帮助我使它工作......我已经尝试过evrything!

我想我的整个方法可能都是错的。我想要的是在WebView内容完全加载时隐藏启动画面图像:

1 个答案:

答案 0 :(得分:0)

好的我已经得到了...... 我已经在父类中描述了该函数,然后从javascript类中调用它。像这样:

public class MainActivity extends Activity {

    public class JavaScriptInterface extends Activity {
        public void hideSplash() {
            hideSplashHandler();
        }
    }

    public void onCreate(Bundle savedInstanceState) {
        /** Some onCreate stuff */
    }

    public void hideSplashHandler() {
        ImageView splash = (ImageView) findViewById(R.id.splash_screen);
        splash.setVisibility(View.GONE);  
    }

}

我不知道这是否正确,但它的作用就像魅力^ _ ^