【问题标题】:Load URL from TextView in WebView Android在 WebView Android 中从 TextView 加载 URL
【发布时间】:2015-04-14 05:29:32
【问题描述】:

我正在使用此方法从可浏览意图过滤器中获取 URL,并将该 URL 粘贴到我的文本字段中,这似乎工作正常,但我想将该 URL 加载到我的 webView 中。我尝试过“webView.loadUrl(intentUri);”,但它使应用程序强制关闭(请参阅下面的日志猫),所以我无法在 onCreate 中加载 URL 但是我找到了一种解决方法,即从我的文本字段获取 URL 并在我的 WebView 中加载该 URL 我在 webview 设置中尝试了“webView.loadUrl(urlEditText.getText());”,但我不能让它工作它给我的错误是“WebView 类型中的方法 loadUrl(String) 不适用于参数(可编辑)

代码

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

原木猫

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 并将其加载到 WebView 中的 onCreate 或 webView 设置的方法。谢谢

【问题讨论】:

    标签: android webview textview


    【解决方案1】:

    "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,因此请确保在初始化webViewurlEditText 之前调用setContentView

    【讨论】:

    • 我尝试在 webview 设置中加载它,但它会在每次启动时加载 url,无论是否真的有有效的 url 或者它是空白的
    • 我们是否可以添加一个 if-else 语句来检测 url 是否为空,并且仅在不为空时才加载
    • @User_420:如果此答案有助于解决当前问题中已发布的问题,并且为新问题创建一个新问题,其他 SO用户也看你的问题。谢谢
    猜你喜欢
    • 1970-01-01
    • 2015-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-18
    • 2016-07-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多