2016-08-31 4 views
-1

Ниже мой код. Android студия не показывает какую-то ошибку, но когда я запустить приложение без подключения, он не отображает мое сообщение ..Нет подключения к Интернету, не отображается, андроид webview

public class MainActivity extends AppCompatActivity { 

    List item 

    DrawerLayout drawerLayout; 
    ActionBarDrawerToggle drawerToggle; 
    NavigationView navigation; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     initInstances(); 

     WebView myWebView = (WebView) findViewById(R.id.webView1); 
     myWebView.getSettings().setJavaScriptEnabled(true); 


     WebSettings webSettings = myWebView.getSettings(); 
     webSettings.setJavaScriptEnabled(true); 
     myWebView.setWebViewClient(new WebViewClient()); 
     Context context = this; 
     ConnectivityManager cm = 
      (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE); 

     NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); 
     boolean isConnected = activeNetwork != null && 
      activeNetwork.isConnectedOrConnecting(); 
     if(isConnected) { 
      myWebView.loadUrl("http://alokitojhalakati.com"); 
     } else { 
      Toast toast = Toast.makeText(MainActivity.this, "No Internet Connection", Toast.LENGTH_LONG); 
      toast.show(); 
     } 
    } 

    private void initInstances() { 
     getSupportActionBar().setHomeButtonEnabled(true); 
     getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

     drawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout); 
     drawerToggle = new ActionBarDrawerToggle(MainActivity.this, drawerLayout, R.string.hello_world, R.string.hello_world); 
     drawerLayout.setDrawerListener(drawerToggle); 

     navigation = (NavigationView) findViewById(R.id.navigation_view); 
     navigation.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { 
      @Override 
      public boolean onNavigationItemSelected(MenuItem menuItem) { 
       int id = menuItem.getItemId(); 
       switch (id) { 
        case R.id.navigation_item_1: 
         startActivity(new Intent(MainActivity.this,MainActivity.class)); 
         break; 
        case R.id.navigation_item_2: 
         startActivity(new Intent(MainActivity.this,NationalActivity.class)); 
         break; 
        case R.id.navigation_item_3: 
         startActivity(new Intent(MainActivity.this,Jhalakati.class)); 
         break; 
        case R.id.navigation_item_4: 
         startActivity(new Intent(MainActivity.this,RajapurActivity.class)); 
         break; 
        case R.id.navigation_item_5: 
         startActivity(new Intent(MainActivity.this,NolcityActivity.class)); 
         break; 
        case R.id.navigation_item_6: 
         startActivity(new Intent(MainActivity.this,KathaliaActivity.class)); 
         break; 
        case R.id.navigation_item_7: 
         startActivity(new Intent(MainActivity.this,SaradeshActivity.class)); 
         break; 
        case R.id.navigation_item_8: 
         startActivity(new Intent(MainActivity.this,EconomicsActivity.class)); 
         break; 
        case R.id.navigation_item_9: 
         startActivity(new Intent(MainActivity.this,SportsActivity.class)); 
        break; 
       case R.id.navigation_item_10: 
        startActivity(new Intent(MainActivity.this,EntertainmentActivity.class)); 
         break; 
        case R.id.navigation_item_11: 
         startActivity(new Intent(MainActivity.this,ITActivity.class)); 
         break; 
        case R.id.navigation_item_12: 
         startActivity(new Intent(MainActivity.this,PrideofJActivity.class)); 
         break; 
        case R.id.navigation_item_13: 
         startActivity(new Intent(MainActivity.this,ReligionActivity.class)); 
         break; 
        case R.id.navigation_item_14: 
         startActivity(new Intent(MainActivity.this,MoreActivity.class)); 
         break; 
        case R.id.navigation_item_15: 
         startActivity(new Intent(MainActivity.this,LogInActivity.class)); 
         break; 
       } 
       return false; 
      } 
     }); 
    } 

    @Override 
    public void onPostCreate(Bundle savedInstanceState) { 
     super.onPostCreate(savedInstanceState); 
     drawerToggle.syncState(); 
    } 

    @Override 
    public void onConfigurationChanged(Configuration newConfig) { 
     super.onConfigurationChanged(newConfig); 
     drawerToggle.onConfigurationChanged(newConfig); 
    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.menu_main, menu); 
     return true; 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     if (drawerToggle.onOptionsItemSelected(item)) 
      return true; 
     int id = item.getItemId(); 

     if (id == R.id.action_settings) { 
      return true; 
     } 
     return super.onOptionsItemSelected(item); 
    } 
} 

XML

<android.support.v4.widget.DrawerLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    android:id="@+id/drawerLayout" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 

    <android.support.design.widget.CoordinatorLayout 
     android:id="@+id/coordinator_layout" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent"> 

     <WebView 
      android:id="@+id/webView1" 
      android:layout_width="fill_parent" 
      android:layout_height="fill_parent"/> 

    </android.support.design.widget.CoordinatorLayout> 

    <android.support.design.widget.NavigationView 
     android:id="@+id/navigation_view" 
     android:layout_width="wrap_content" 
     android:layout_height="match_parent" 
     android:layout_gravity="start" 
     app:itemIconTint="#d20b0d" 
     app:itemTextColor="#333" 
     app:menu="@menu/navigation_items" /> 
</android.support.v4.widget.DrawerLayout> 

Что здесь не так? Что мне нужно сделать, чтобы показать тост-сообщение, когда нет соединения?

+0

Попробуйте мой ответ, просто добавьте эти два разрешения и попробуйте ... –

ответ

0

Возможно, телефон подключен к сети, но у него нет подключения к Интернету. В вашем случае вы просто проверяете соединение «сеть». ли это

public boolean isInternetAvailable() { 
     try { 
      InetAddress ipAddr = InetAddress.getByName("google.com"); 
      return !ipAddr.equals(""); 

     } catch (Exception e) { 
      return false; 
     } 

    } 

Это проверяет подключение к Интернету, а также.

EDIT: PS: Это долго в ожидании «иметь» API для Android.There в качестве API для подключения к сети, но ничего для «Подключение к Интернету»

+0

как я подключаю интернет-соединение? –

+0

Путем попадания на собственный сервер или вездесущий сервер. Подобно «m.google.com», как указано выше – therealprashant

0

попробовать это:

public class MainActivity extends AppCompatActivity { 

List item 

DrawerLayout drawerLayout; 
ActionBarDrawerToggle drawerToggle; 
NavigationView navigation; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    initInstances(); 

    WebView myWebView = (WebView) findViewById(R.id.webView1); 
    myWebView.getSettings().setJavaScriptEnabled(true); 


    WebSettings webSettings = myWebView.getSettings(); 
    webSettings.setJavaScriptEnabled(true); 
    myWebView.setWebViewClient(new WebViewClient()); 
    Context context = this; 
    try { 
      if(isConnected()){ 

       myWebView.loadUrl("http://alokitojhalakati.com"); 

      }else{ 

       Toast toast = Toast.makeText(MainActivity.this, "No Internet Connection", Toast.LENGTH_LONG); 

      } 
     } catch (InterruptedException e) { 
      e.printStackTrace(); 
     } catch (IOException e) { 
      e.printStackTrace(); 
     } 

} 

private void initInstances() { 
    getSupportActionBar().setHomeButtonEnabled(true); 
    getSupportActionBar().setDisplayHomeAsUpEnabled(true); 

    drawerLayout = (DrawerLayout) findViewById(R.id.drawerLayout); 
    drawerToggle = new ActionBarDrawerToggle(MainActivity.this, drawerLayout, R.string.hello_world, R.string.hello_world); 
    drawerLayout.setDrawerListener(drawerToggle); 

    navigation = (NavigationView) findViewById(R.id.navigation_view); 
    navigation.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() { 
     @Override 
     public boolean onNavigationItemSelected(MenuItem menuItem) { 
      int id = menuItem.getItemId(); 
      switch (id) { 
       case R.id.navigation_item_1: 
        startActivity(new Intent(MainActivity.this,MainActivity.class)); 
        break; 
       case R.id.navigation_item_2: 
        startActivity(new Intent(MainActivity.this,NationalActivity.class)); 
        break; 
       case R.id.navigation_item_3: 
        startActivity(new Intent(MainActivity.this,Jhalakati.class)); 
        break; 
       case R.id.navigation_item_4: 
        startActivity(new Intent(MainActivity.this,RajapurActivity.class)); 
        break; 
       case R.id.navigation_item_5: 
        startActivity(new Intent(MainActivity.this,NolcityActivity.class)); 
        break; 
       case R.id.navigation_item_6: 
        startActivity(new Intent(MainActivity.this,KathaliaActivity.class)); 
        break; 
       case R.id.navigation_item_7: 
        startActivity(new Intent(MainActivity.this,SaradeshActivity.class)); 
        break; 
       case R.id.navigation_item_8: 
        startActivity(new Intent(MainActivity.this,EconomicsActivity.class)); 
        break; 
       case R.id.navigation_item_9: 
        startActivity(new Intent(MainActivity.this,SportsActivity.class)); 
       break; 
      case R.id.navigation_item_10: 
       startActivity(new Intent(MainActivity.this,EntertainmentActivity.class)); 
        break; 
       case R.id.navigation_item_11: 
        startActivity(new Intent(MainActivity.this,ITActivity.class)); 
        break; 
       case R.id.navigation_item_12: 
        startActivity(new Intent(MainActivity.this,PrideofJActivity.class)); 
        break; 
       case R.id.navigation_item_13: 
        startActivity(new Intent(MainActivity.this,ReligionActivity.class)); 
        break; 
       case R.id.navigation_item_14: 
        startActivity(new Intent(MainActivity.this,MoreActivity.class)); 
        break; 
       case R.id.navigation_item_15: 
        startActivity(new Intent(MainActivity.this,LogInActivity.class)); 
        break; 
      } 
      return false; 
     } 
    }); 
} 

@Override 
public void onPostCreate(Bundle savedInstanceState) { 
    super.onPostCreate(savedInstanceState); 
    drawerToggle.syncState(); 
} 

@Override 
public void onConfigurationChanged(Configuration newConfig) { 
    super.onConfigurationChanged(newConfig); 
    drawerToggle.onConfigurationChanged(newConfig); 
} 

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.menu_main, menu); 
    return true; 
} 

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    if (drawerToggle.onOptionsItemSelected(item)) 
     return true; 
    int id = item.getItemId(); 

    if (id == R.id.action_settings) { 
     return true; 
    } 
    return super.onOptionsItemSelected(item); 
} 
public boolean isConnected() throws InterruptedException, IOException 
{ 
    String command = "ping -c 1 google.com"; 
    return (Runtime.getRuntime().exec (command).waitFor() == 0); 
} 
} 
0

Вы должны эти разрешения .. если добавить Интернет добавить ACCESS_NETWORK_STATE

<uses-permission android:name="android.permission.INTERNET" /> 
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

Ваш код WEL Я работаю только добавить эти два разрешения в AndroidmainFiest

Когда нет Интернета

enter image description here

Когда нет Интернет

enter image description here

+0

Разрешения не являются виновниками, я думаю .. если разрешение werent было добавлено, тогда его ошибка времени компиляции – therealprashant

+0

Я проверил код ..... То же самое .. во время компиляции. В противном случае это код отлично ... без этого кода разрешения некоторая ошибка logcat с разрешением –

0
if (checkInternetConnection(this)) { 
//if internet connection is there the webpage will load. 
} 

public static boolean checkInternetConnection(Context context) { 

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

NetworkInfo wifiNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI); 
if (wifiNetwork != null && wifiNetwork.isConnected()) { 
return true; // checking whether you are getting internet from Wi-Fi or not 
} 

NetworkInfo mobileNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE); 
if (mobileNetwork != null && mobileNetwork.isConnected()) { 
return true; // checking whether you are getting internet from mobile data or not 
} 

NetworkInfo activeNetwork = cm.getActiveNetworkInfo(); 
if (activeNetwork != null && activeNetwork.isConnected()) { 
return true; 
} 

Toast.makeText(getApplicationContext(), "Internet Connection Not Present",Toast.LENGTH_LONG).show(); // If you are not getting internet then Toast will execute 
return false; 
} 
Смежные вопросы