2016-05-24 5 views
2

Also versuche ich nur meine Netzwerkverbindung zu überprüfen und Ausführungen auszuführen, wenn es wahr oder falsch ist. Ich weiß innerhalb eines Fragments, dass Sie die geactivity verwenden können, bevor Sie den Systemdienst erhalten, aber das funktioniert nicht für mich? Danke für die Hilfe :)Wie überprüft man die Netzwerkverbindung innerhalb des ViewGroup Fragments?

public class Fragment1 extends Fragment implements View.OnClickListener { 

TextView textView; 

@Nullable 
@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    View v = inflater.inflate(R.layout.frag1, container, false); 

ConnectivityManager connectivityManager =(ConnectivityManager).getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); 
     if(networkInfo!=null && networkInfo.isConnected()) 
     { 
      textView.setVisibility(View.INVISIBLE); 
     } 
     else 
     { 
      Byron.setEnabled(false); 
      Lennox.setEnabled(false); 
      Skenners.setEnabled(false); 
      Ballina.setEnabled(false); 
     } 

Antwort

0

Innenviewgroup können Sie getContext() Methode für das Erhalten System Service verwenden.

ConnectivityManager connectivityManager =(ConnectivityManager)getContext().getSystemService(Context.CONNECTIVITY_SERVICE); 
0

Sie können in jedem Konstruktor Sie benutzerdefinierte Ansicht/Viewgroup wie dies eine init() Funktion hinzu:

public class CustomView extends Button { 
    public CustomView(Context context) { 
     super(context); 

     init(); 
    } 

    public CustomView(Context context, AttributeSet attrs) { 
     super(context, attrs); 

     init(); 
    } 

    public CustomView(Context context, AttributeSet attrs, int defStyleAttr) { 
     super(context, attrs, defStyleAttr); 

     init(); 
    } 

    public CustomView(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) { 
     super(context, attrs, defStyleAttr, defStyleRes); 

     init(); 
    } 

    private void init() { 
     ConnectivityManager connectivityManager = (ConnectivityManager) getContext().getSystemService(Context.CONNECTIVITY_SERVICE); 
     // Other stuffs 
    } 
} 
0

Machen Sie eine separate Klasse in Ihrem Projekt apputil wie folgt aus:

public class AppUtil{ 
public static boolean isNetworkConnectionAvailable(Context ctx, boolean showDialog){ 
     ConnectivityManager manager =(ConnectivityManager)ctx.getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo activeNetwork = manager.getActiveNetworkInfo(); 

     boolean isConnected = activeNetwork != null && activeNetwork.isConnectedOrConnecting(); 
     if(!isConnected&&showDialog){ 
      AppUtil.showSimpleDialog(ctx, ctx.getString(R.string.network_not_available), 
        ctx.getString(R.string.internet_not_available)); 
     } 
     return isConnected; 
    } 

} 

Um die Netzwerkverbindung zu überprüfen, gehen Sie wie folgt vor:

public class Fragment1 extends Fragment implements View.OnClickListener { 

TextView textView; 

if (AppUtil.isNetworkConnectionAvailable(this, true)){ 
textView.setVisibility(View.INVISIBLE); 
} 
else{ 
Byron.setEnabled(false); 
      Lennox.setEnabled(false); 
      Skenners.setEnabled(false); 
      Ballina.setEnabled(false); 
} 


}