2014-11-12 1 views
0

Я задаю один и тот же вопрос ранее, но не смог найти правильное решение. Моя проблема заключается в том, что я хочу показать messege, если нет подключения к интернету, если загрузка в Интернете загружается, а также в то же время, если я нажму кнопку обновления в панели действий Android. Он не отображает тост, если я нажму кнопку обновления. Скажите, кто-нибудь помог мне?андроид, проверяющий подключение к Интернету при нажатии кнопки

это мое соединение класса

public class Datacon extends Activity { 
    public static boolean checkInternetConnection(Context context) { 

    ConnectivityManager con_manager = (ConnectivityManager) context 
      .getSystemService(Context.CONNECTIVITY_SERVICE); 

    if (con_manager.getActiveNetworkInfo() != null 
      && con_manager.getActiveNetworkInfo().isAvailable() 
      && con_manager.getActiveNetworkInfo().isConnected()) { 
     return true; 
    } else { 
     return false; 
    } 
} 

}

это mywebview.java

public class Mywebpage<Bitmap> extends Activity { 
String url; 
    WebView myWebView ; 

    ProgressBar loadingProgressBar,loadingTitle; 
public void onCreate(Bundle savedInstanceState){ 
super.onCreate(savedInstanceState); 
final Context context = this; 
setContentView(R.layout.webviewpage); 
AdView ads=(AdView)this.findViewById(R.id.adViewer); 
AdRequest request=new AdRequest.Builder().build(); 
ads.loadAd(request); 
View mActionBarView = getLayoutInflater().inflate(R.layout.my_actionbar, null); 
final android.app.ActionBar actionBar = getActionBar(); 
actionBar.setDisplayShowHomeEnabled(false); 
getActionBar().setIcon(new ColorDrawable(getResources().getColor(android.R.color.transparent))); 
actionBar.setCustomView(mActionBarView); 
actionBar.setDisplayOptions(ActionBar.DISPLAY_SHOW_CUSTOM); 
actionBar.setBackgroundDrawable(getResources().getDrawable(R.drawable.gradientwhite)); 
Button refresh = (Button) actionBar.getCustomView().findViewById(R.id.but2); 

Button search = (Button) actionBar.getCustomView().findViewById(R.id.button1); 
search.setOnClickListener(new OnClickListener() { 
    public void onClick(View arg0) { 
Intent inte=new Intent(Mywebpage.this,MainActivity.class); 
inte.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
    startActivity(inte); 
    finish(); 
    } 
    }) ; 


Bundle extras = getIntent().getExtras(); 
String title; 

if (!Datacon.checkInternetConnection(this)) { 

    for (int i=0; i < 3; i++) 
    { 
      Toast.makeText(this, "Check your Internet Connection!", Toast.LENGTH_LONG).show(); 
    } 

} else { 

if (extras != null) { 
    title = extras.getString("title"); 
    url = extras.getString("url"); 
    TextView text=(TextView) findViewById(R.id.textView1); 
    text.setText(title); 
    myWebView=(WebView)findViewById(R.id.WebView); 
    myWebView.loadUrl(url); 
    myWebView.getSettings().setLoadWithOverviewMode(true); 
    myWebView.getSettings().setUseWideViewPort(true); 
    myWebView.getSettings().setBuiltInZoomControls(true); 
    myWebView.getSettings().setLayoutAlgorithm(LayoutAlgorithm.SINGLE_COLUMN); 
    loadingProgressBar=(ProgressBar)findViewById(R.id.progressBar1); 

    myWebView.setWebViewClient(new WebViewClient(){ 

     public void onPageStarted(WebView view, String url, Bitmap favicon) { 
      loadingProgressBar.setVisibility(View.VISIBLE); 
     } 

     @Override 
     public void onPageFinished(WebView view, String url) { 
      loadingProgressBar.setVisibility(View.GONE); 
     } 
     public boolean shouldOverrideUrlLoading(WebView view, String url) { 
      view.loadUrl(url); 
      return false; 
     } 
    }); 


    refresh.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      ConnectivityManager con_manager = (ConnectivityManager) context 
        .getSystemService(Context.CONNECTIVITY_SERVICE); 
      NetworkInfo netInfo = con_manager 
        .getActiveNetworkInfo(); 
      String status = netInfo.getState().toString(); 
      if (status.equalsIgnoreCase("CONNECTED")) { 
       myWebView.loadUrl(url); 

      } 

      else { 

       Context context_new = getApplicationContext(); 
       CharSequence text = "Hello n!"; 
       int duration = Toast.LENGTH_LONG; 
       Toast toast = Toast.makeText(context_new, text, 
         duration); 
       toast.show(); 

      } 

     } 
    }); 



    } 
} 
} 
} 

он не показывает тост messege когда кнопка обновления нажата, если нет интернета соединение ..

+0

Какую ошибку вы получаете? –

+0

не отображается тост-сообщение при нажатии кнопки обновления. –

+0

означает, что вы отключили доступ в Интернет прямо, а затем проверили тост с сообщением, что интернет-соединение не отображается. – virendrao

ответ

0

сети Написать обновление кнопки щелчок события, как показано ниже:

refresh.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 

      if (Datacon.checkInternetConnection(Mywebpage.this)) { 
       myWebView.loadUrl(url); 

      } 

      else { 

       Context context_new = getApplicationContext(); 
       CharSequence text = "Hello n!"; 
       int duration = Toast.LENGTH_LONG; 
       Toast toast = Toast.makeText(context_new, text, 
         duration); 
       toast.show(); 

      } 

     } 
    }); 
+0

нет его отображения Метод checkInternetConnection (Контекст) в типе Datacon не применим для аргументов() –

+0

спасибо так много. @ pratt теперь его отлично работает .. –

+0

@Thusharaprasad его нормально ... ура, счастливая кодировка !!! –

0

Я проверил вот так, создаю класс

public class Netconnection { 

public static boolean isOnline(Context ctx) { 

    boolean haveConnectedWifi = false; 
    boolean haveConnectedMobile = false; 

    if (ctx != null) { 
     ConnectivityManager cm = (ConnectivityManager) ctx 
       .getSystemService(Context.CONNECTIVITY_SERVICE); 
     if (cm != null) { 
      NetworkInfo[] netInfo = cm.getAllNetworkInfo(); 
      for (NetworkInfo ni : netInfo) { 

       if (ni.getTypeName().equalsIgnoreCase("WIFI")) 
        if (ni.isConnected()) 
         haveConnectedWifi = true; 
       if (ni.getTypeName().equalsIgnoreCase("MOBILE")) 
        if (ni.isConnected()) 
         haveConnectedMobile = true; 
      } 
     } 
    } 
    return haveConnectedWifi || haveConnectedMobile; 
} 
} 

Затем проверьте, доступна ли или не из вашего класса активности

Button homeBtn=(Button)findViewById(R.id.button5); 
    homeBtn.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      if (Netconnection.isOnline(Activity.this)) { 
         // Success 
       } 
       else 
       { 
         // Display Toast 
       } 
     } 
    }); 
+0

Мне нужно проверить это внутри моего события нажатия кнопки, а также в моей деятельности. –

+0

Вы можете называть это в событии click button также ... см. измененный код –

0

// Использования метода checkConnectivity

public void onClick(View view){ 
     checkConnectivity() 
     //do something 

     } 

// метод, чтобы проверить ваше подключение

private int checkConnectivity() { 
     boolean enabled = true; 

     ConnectivityManager connectivityManager = (ConnectivityManager) this.getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo info = connectivityManager.getActiveNetworkInfo(); 

     if ((info == null || !info.isConnected() || !info.isAvailable())) { 
      internet = 0;//sin conexion 
      Toast.makeText(getApplicationContext(), "Sin conexión a Internet...", Toast.LENGTH_SHORT).show(); 
      enabled = false; 
     } else { 
      internet = 1;//conexión 
     } 

     return internet; 
    } 
Смежные вопросы