2013-08-01 2 views
1

내 Webview (mainWebView) 현재 URL에 "/ start"와 같은 단어가 포함되어 있으면이를 수행하겠습니다. 현재 오류가 발생하여 몇 가지 아이디어가 있습니까?현재 브라우저 URL에 단어가 포함 된 경우 수행 할 작업

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) 

하지만 위처럼 내 경우에는 쿼리 포함과 함께.


여전히 작동하지 않습니다. 난 당신의 코드에서 볼

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(); 
     } 
+0

어떤 오류가 발생합니까? 스택 추적을 편집하고 붙여 넣을 수 있습니까? – StormeHawke

+0

또한'if (CurUrl.indexOf ("/ start")> -1)'꽤 어색합니다. 대신에 if (CurUrl.contains ("/ start"))'를 사용해보십시오. 대소 문자를 구별하지 않으려면, (CurUrl.toLowerCase(). (some-all-lower-case-string))도 포함 할 수 있습니다. – StormeHawke

+1

아, 다른 한 가지 - Java의 변수, by 대회는 소문자로 시작해야하며 낙타의 경우가되어야합니다. 즉, CurUrl보다는 curUrl입니다. 유일한 예외는 상수이다. 어떤 경우에는 ALL_UPPER_CASE'이어야한다. – StormeHawke

답변

2

하나의 실수가 잘못 2000Toast.makeTest(this, "test", 2000)

당신은 시간을 지정한 구문에 : 같은 오류

이 변경되었습니다. 토스트 기간에 의해 지원되는 유일한 값은 Toast.LENGTH_SHORTToast.LENGTH_LONG, 그 값의 정수에서 0과

1. 더 읽기되어 있습니다 그것에 대해 here

1

무엇 당신은 "/ 시작"구문 분석 onPageFinished에 (또는 시도 할 경우 onPageStarted)

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

같은 오류가 발생하면 다른 문제가 발생합니다.

관련 문제