2017-01-18 4 views
0

スワイプでリフレッシュするrecycler viewのフラグメントがあります。リフレッシュすると、サーバにアクセスし、recycler viewを更新するdbからリストを取得します。そのすべてがうまく動作します。フラグメントからの接続を確認するためには絶対にしないでください

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

これは私の活動から素晴らしい作品が、私はフラグメント"getSystemService"以内にそれを呼び出そうとするとエラーが作成されます:私の問題は、私は私が私の活動にインターネットを持っているかどうかを確認する方法があり、これです。私は、そのフラグメントからアクティビティへのリスナーを使用するか、このメソッドをフラグメント内に配置しようとしましたが、動作しません。フラグメント内のインターネットの状態をチェックすることは可能ですか、それともアクティビティでのみ行うことができますか?

+0

logcat?どのようにコードを呼び出すのですか?コンテキストがあればどこでも確認できます。 – adalPaRi

+0

エラースタックトレースしてください。 – xaxist

答えて

2

あなたはフラグメントからの接続をチェックしたい場合は、あなたのケースでは、活動コンテキストを取得する必要があります:

public boolean isConnected(){ 
    ConnectivityManager connectivityManager = (ConnectivityManager) 
      getActivity().getSystemService(Context.CONNECTIVITY_SERVICE); 
    NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); 
    return networkInfo != null && networkInfo.isConnected(); 
} 

または静的メソッド

public class Utils{ 
    public static boolean isConnected(Context context){ 
     ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 
     NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); 
     return networkInfo != null && networkInfo.isConnected(); 
    } 
} 

とをとでフラグメントからそれを呼び出します

Utils.isConnected(getActivity()); 
+0

またはメソッドを静的にしてUtilクラスに追加する – mayosk

+0

確かに、私はこのように私の答えを編集しました。 – Yoleth

関連する問題