2014-03-25 53 views
0

網絡連接我已經解決了現在這Android的:如何處理這樣的Play商店應用

我要處理的網絡連接,如Play商店應用。

我創建了一個網頁視圖,並希望加載URL說www.bing.com

如果網絡連接可用然後 負載URL 否則巴頓 加載自定義URL。 結束

  1. 如果在按下該按鈕,我想嘗試並重新加載URL沒有連接?換句話說,我想在用戶連接後再次調用此活動。我怎麼做 ?

    下面是我的代碼:

    import android.net.ConnectivityManager; 
    import android.net.NetworkInfo; 
    import android.os.Bundle; 
    import android.app.Activity; 
    import android.view.Menu; 
    import android.view.MenuItem; 
    import android.webkit.WebView; 
    import android.webkit.WebViewClient; 
    import android.widget.Toast; 
    import android.support.v4.app.NavUtils; 
    import android.annotation.TargetApi; 
    import android.content.Context; 
    import android.os.Build; 
    
    
    public class WebActivity extends Activity { 
    
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        setContentView(R.layout.activity_web); 
    
    
        if(isNetworkStatusAvailable (getApplicationContext())) { 
    
         Toast.makeText(getApplicationContext(), "Loading...", Toast.LENGTH_SHORT).show(); 
         WebView myWebView = (WebView) findViewById(R.id.webview); 
         myWebView.loadUrl("http://www.bing.com"); 
    
         myWebView.setWebViewClient(new WebViewClient() { 
    
          @Override 
          public void onReceivedError(WebView view, int errorCode, 
            String description, String failingUrl) { 
           Toast.makeText(getApplicationContext(), "Internet Connection Unavailable Or " + description , Toast.LENGTH_LONG).show(); 
    
           Intent errorIntent = new Intent(WebActivity.this, NetworkErrorActivity.class); 
           startActivity(errorIntent); 
           finish(); 
    
           super.onReceivedError(view, errorCode, description, failingUrl); 
          } 
         }); 
    
        } else { 
    
         Toast.makeText(getApplicationContext(), "Internet Connection Unavailable.", Toast.LENGTH_LONG).show(); 
           Intent errorIntent = new Intent(this, NetworkErrorActivity.class); 
           startActivity(errorIntent); 
           finish(); 
    
    
        } 
    
        // Show the Up button in the action bar. 
        setupActionBar(); 
    } 
    
    public static boolean isNetworkStatusAvailable (Context context) { 
        ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
        if (connectivityManager != null) 
        { 
         NetworkInfo netInfos = connectivityManager.getActiveNetworkInfo(); 
         if(netInfos != null) 
         if(netInfos.isConnected()) 
          return true; 
        } 
        return false; 
    } 
    
    } 
    
+0

只是說,我不認爲Android上的Play商店應用程序正在使用網絡視圖。對於你的問題,可能的方法是當網絡不可用時,用一些包含重試按鈕的其他視圖(如相對佈局)替換你的web視圖。 – kevin

+0

我昨天在嘗試你的解決方案,但我無法用webview中的按鈕工作。 我現在已經用下面的方法解決了這個問題 - 我用其他代碼代替 意圖errorIntent = new Intent(this,NetworkErrorActivity.class); startActivity(errorIntent); 在我的新活動中,我通過按下一個按鈕再次呼叫我以前的活動。最後它的作品! – Gaga

+0

「再次打電話給我以前的活動」是什麼意思?如果您試圖開始一項新活動而不是返回到之前的活動,那將會弄亂您的背部堆疊。 – kevin

回答

0

你必須使用的片段。 onCreate檢查互聯網連接,如果可用的加載片段與webview否則加載片段與按鈕。在按鈕OnClick再次檢查互聯網的可用性,作爲響應,您可以用webView替換片段。

+0

我仍然在學習如何使用片段,但我認爲你的解決方案完美的工作,因爲目前,而不是我使用兩個活動的兩個片段。我只是遇到了一些按鈕問題。現在它工作正常。我會嘗試下一步使用片段。 – Gaga

+0

你能解決這個問題嗎?你可以點亮這個嗎?博客或文章的東西? –

相關問題