从WebView Android中的TextView加载URL

时间:2015-02-13 08:11:30

标签: android webview textview

我使用此方法从Browsable intent过滤器获取URL并将该URL粘贴到我的文本字段中,这似乎工作正常,但我想在我的webView中加载该URL。我试过&#34; webView.loadUrl(intentUri); &#34;但它会使应用程序强制关闭(请参阅下面的log cat),因此我无法在onCreate中加载URL 我找到了一种解决方法,即从我的文本中获取URL在我的WebView中尝试使用的字段和加载&#34; webView.loadUrl(urlEditText.getText()); &#34;在webview设置中,但我无法使它工作,它给我的错误是&#34; WebView类型中的方法loadUrl(String)不适用于参数(可编辑)&#34; < / p>

TextView uri = (TextView) findViewById(R.id.urlField);
//if (Intent.ACTION_MAIN.equals(getIntent().getAction())) {
    String intentUri = (new Intent("com.example.browsableintent.MY_ACTION"))
            .toUri(Intent.URI_INTENT_SCHEME).toString();
    uri.setText(intentUri);
    webView.loadUrl(intentUri);
    Log.w("URLHandler", intentUri);
//} else {
    Uri data = getIntent().getData();
    if (data == null) {
        uri.setText("");
    } else {
        uri.setText(getIntent().getData().toString());
    }
//}

Log Cat

02-11 17:50:48.678: E/AndroidRuntime(29023): FATAL EXCEPTION: main
02-11 17:50:48.678: E/AndroidRuntime(29023): Process: com.air.swiftmp, PID: 29023
02-11 17:50:48.678: E/AndroidRuntime(29023): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.air.swiftmp/com.air.swiftmp.MainActivity}: java.lang.NullPointerException
02-11 17:50:48.678: E/AndroidRuntime(29023):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2292)
02-11 17:50:48.678: E/AndroidRuntime(29023):    at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2350)
02-11 17:50:48.678: E/AndroidRuntime(29023):    at android.app.ActivityThread.access$800(ActivityThread.java:163)
02-11 17:50:48.678: E/AndroidRuntime(29023):    at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1257)
02-11 17:50:48.678: E/AndroidRuntime(29023):    at android.os.Handler.dispatchMessage(Handler.java:102)
02-11 17:50:48.678: E/AndroidRuntime(29023):    at android.os.Looper.loop(Looper.java:157)
02-11 17:50:48.678: E/AndroidRuntime(29023):    at android.app.ActivityThread.main(ActivityThread.java:5335)
02-11 17:50:48.678: E/AndroidRuntime(29023):    at   java.lang.reflect.Method.invokeNative(Native Method)
02-11 17:50:48.678: E/AndroidRuntime(29023):    at java.lang.reflect.Method.invoke(Method.java:515)
02-11 17:50:48.678: E/AndroidRuntime(29023):    at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1265)
02-11 17:50:48.678: E/AndroidRuntime(29023):    at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1081)
02-11 17:50:48.678: E/AndroidRuntime(29023):    at dalvik.system.NativeStart.main(Native Method)
02-11 17:50:48.678: E/AndroidRuntime(29023): Caused by: java.lang.NullPointerException
02-11 17:50:48.678: E/AndroidRuntime(29023):    at com.air.swiftmp.MainActivity.onCreate(MainActivity.java:95)
02-11 17:50:48.678: E/AndroidRuntime(29023):    at android.app.Activity.performCreate(Activity.java:5389)
02-11 17:50:48.678: E/AndroidRuntime(29023):    at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1105)
02-11 17:50:48.678: E/AndroidRuntime(29023):    at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2256)

我只想要一种从我的文本字段获取URL并在onCreate或webView设置中将其加载到WebView中的方法。感谢

1 个答案:

答案 0 :(得分:2)

  

“webView.loadUrl(urlEditText.getText());”在webview设置但我   不能让它工作它给我的错误是“方法   WebView类型中的loadUrl(String)不适用于   参数(可编辑)“

由于loadUrl将url作为字符串,但getText()方法返回Editable对象,因此请toString()使用getText(),如:

String strUrl=urlEditText.getText().toString();
if(strUrl.length()>0)
  webView.loadUrl(strUrl);
else
  //... show message if url is null

并获得NPE因此请确保在初始化setContentViewwebView之前调用urlEditText