1

Webview (mainWebView)の現在のURL に「/start」などの単語が含まれている場合、何かを実行させたいと思います。現在エラーを吐き出していますが、いくつかのアイデアはありますか?

public class GatewayActivity extends Activity {
private String CurUrl;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_gateway);

        WebView mainWebView = (WebView) findViewById(R.id.WebView1);

        // other Webview Data

        mainWebView.loadUrl("https://url.com/start");
            CurUrl = mainWebView.getOriginalUrl();

        if(CurUrl.indexOf("/start") > -1) {
            Toast error=Toast.makeText(this,  "test",  2000);   
            error.show();
        }
        else {
            Toast error=Toast.makeText(this,  "test failed",  2000);    
            error.show();
        }

}

編集:助けてくれてありがとう、でもまだそのようなエラーが発生しています:

    08-01 17:42:40.971: E/AndroidRuntime(16741): FATAL EXCEPTION: main
08-01 17:42:40.971: E/AndroidRuntime(16741): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.XXX.XXX/com.XXX.XXX.GatewayActivity}: java.lang.NullPointerException
08-01 17:42:40.971: E/AndroidRuntime(16741):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2355)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2391)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at android.app.ActivityThread.access$600(ActivityThread.java:151)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1335)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at android.os.Handler.dispatchMessage(Handler.java:99)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at android.os.Looper.loop(Looper.java:155)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at android.app.ActivityThread.main(ActivityThread.java:5493)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at java.lang.reflect.Method.invokeNative(Native Method)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at java.lang.reflect.Method.invoke(Method.java:511)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1028)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:795)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at dalvik.system.NativeStart.main(Native Method)
08-01 17:42:40.971: E/AndroidRuntime(16741): Caused by: java.lang.NullPointerException
08-01 17:42:40.971: E/AndroidRuntime(16741):    at com.XXX.XXX.GatewayActivity.onCreate(GatewayActivity.java:72)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at android.app.Activity.performCreate(Activity.java:5066)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1101)
08-01 17:42:40.971: E/AndroidRuntime(16741):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2311)

ただし、上記のような If クエリが含まれている場合のみです。


まだ動作しません。

同じエラーが次のように変更されました:

mainWebView.loadUrl("https://url.com");

        String cururl = null;
        cururl = mainWebView.getOriginalUrl();


        if(cururl.contains("/start")) {
            //Toast error=Toast.makeText(this, "test", Toast.LENGTH_SHORT); 
            //error.show();
        }
        else {
            //Toast error2=Toast.makeText(this,  "nope",  Toast.LENGTH_SHORT);  
            //error2.show();
        }
4

2 に答える 2

2

あなたのコードに見られる間違いの1つは、次の構文にありますToast.makeTest(this, "test", 2000)

2000間違った期間を指定しました。Toast duration でサポートされる値はToast.LENGTH_SHORTとのみToast.LENGTH_LONGで、整数値は 0 と 1 です。

詳しくはこちら

于 2013-08-01T14:18:02.207 に答える
1

onPageFinished (または onPageStarted) で "/start" を解析しようとするとどうなりますか?

@Override
public void onPageFinished(WebView view, String url) { 
 super.onPageFinished(view, url);
 if(url.contains("/start")) {
            Toast.makeText(GatewayActivity.this, "test", Toast.LENGTH_LONG).show();
        }else {
            Toast.makeText(GatewayActivity.this, "test", Toast.LENGTH_LONG).show();
        }
}

同じエラーが発生する場合は、他の問題に問題があります。

于 2013-08-02T14:13:54.010 に答える