0

美好的一天,我在这里过得很艰难。任何帮助都可以。我有一个布局调用具有 WebView 的 xml。可能吗?如果我没有互联网连接。它会重定向到其他布局Sorry.java有文字说。“对不起,你这次没有网络连接”..

这是我的代码

@SuppressLint("SetJavaScriptEnabled")
public class Translate extends Activity {

private WebView mWebView;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.translate);

    mWebView = (WebView) findViewById(R.id.webview);
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.loadUrl("http://www.google.com");
    mWebView.setWebViewClient(new HelloWebViewClient());


}

private class HelloWebViewClient extends WebViewClient {
    @Override
    public boolean shouldOverrideUrlLoading(WebView webview, String url)
    {
        webview.loadUrl(url);
        return true;
    }
}

@Override
public boolean onKeyDown(int keyCode, KeyEvent event)
{
    if ((keyCode == KeyEvent.KEYCODE_BACK) && mWebView.canGoBack())
    {
        mWebView.goBack();
        return true;
    }
    return super.onKeyDown(keyCode, event);
}

这是我的 xml 文件

<?xml version="1.0" encoding="utf-8"?>
<WebView  xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/webview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>

谢谢 :)

4

2 回答 2

0

添加另一个TextView带有错误消息和GONE可见性的内容。然后,您可以(在 onCreate 中)检查互联网是否在线,如果没有将WebView' 的可见性GONE设置为并将 textview 的可见性设置为VISIBLE,当然,不要尝试在 webview 中加载 URL。

编辑 要检查互联网是否已连接,您将需要 ACCESS_NETWORK_STATE 权限并使用此方法:

public static boolean isConnected(Context context) {
    ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
    if (cm.getActiveNetworkInfo() != null
            && cm.getActiveNetworkInfo().isAvailable()
            && cm.getActiveNetworkInfo().isConnected()) {
        return true;
    }
    return false;
}
于 2013-04-13T15:07:52.840 回答
0

此方法将检查您的连接性:

public boolean isDeviceConnectedToInternet() {
    NetworkInfo networkInfo = (NetworkInfo) ((ConnectivityManager).getSystemService(Context.CONNECTIVITY_SERVICE)).getActiveNetworkInfo();
    if (networkInfo != null && networkInfo.isConnected()) {
        return true;
    }
    return false;
}

因此,在您的活动中检查连接,如果没有可用连接,则转到另一个活动:

if(!isDeviceConnectedToInternet()) {
    startActivity(new Intent(this, OfflineActivity.class));
} else {
    // Show webView
}

希望这有帮助。

于 2013-04-13T15:18:43.553 回答