3

SherlockFragment でネットワーク接続を確認しようとしましたが、getSystemService() メソッドが認識されません。

以下は私のコードです(http://developer.android.com/training/basics/network-ops/connecting.htmlから)

    ConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();
    if (networkInfo != null && networkInfo.isConnected()) {
        // fetch data
    } else {
        // display error
    }

前もって感謝します

4

2 に答える 2

27

メソッドgetSystemService()はフラグメントで定義されていないため、最初に を使用してアクティビティを取得しますgetActivity()。例:

ConnectivityManager connMgr = (ConnectivityManager) getActivity()
                             .getSystemService(Context.CONNECTIVITY_SERVICE);

NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();

if (networkInfo != null && networkInfo.isConnected()) {
    // fetch data
} else {
    // display error
}

ps :追加メモ: フラグメントがアクティビティに関連付けられずに実行されている可能性がある場合は、最初getActivity()に が返されるかどうかを確認してくださいnull

乾杯!

于 2013-05-10T11:37:31.267 に答える