0

私は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);            
}

ご覧のとおり、関数の先頭にトーストアラートを配置して、何かが発生したかどうかを確認しました。私が得たのは、この「スプラッシュ!削除!!!」です。メッセージと「スプラッシュ」オブジェクトは、何らかの理由でその可視性を変更することを拒否します。誰か私がそれを機能させるのを手伝ってください...私はevrythingを試しました!

私のアプローチ全体が間違っているかもしれないと思います。私が欲しいのは、WebViewコンテンツが完全にロードされたときにスプラッシュ画面の画像を非表示にすることです。

4

1 に答える 1

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);  
    }

}

これが正しいかどうかはわかりませんが、魅力のように機能します^_^

于 2012-08-22T12:27:05.790 に答える