如何在ViewGroup Fragment中检查网络连接?

时间:2016-05-24 08:31:37

标签: java android android-fragments fragment

所以我只是试图检查我的网络连接并执行执行,如果它是真或假。我知道在片段中你可以在获得系统服务之前使用getactivity,但是这对我不起作用?谢谢你的帮助:)

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);
        }

3 个答案:

答案 0 :(得分:0)

在ViewGroup内部,您可以使用getContext()方法获取系统服务。

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

答案 1 :(得分:0)

您可以在自定义视图/视图组的所有构造函数中添加init()函数,如下所示:

import

答案 2 :(得分:0)

在你的项目AppUtil中创建一个单独的类:

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;
    }

}

要检查网络连接,请执行以下操作:

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);
}


}