我的应用程序登录后,我需要在每次onClick
事件之前和每次添加Fragment
之后检查Internet连接。如果Internet连接不可用,setContentView
应设置另一个片段,一旦互联网变为可用,它应该设置工作片段
这是用于检查NetworkStatus
public class NetworkStatus {
public static String checkConnection(Context context){
ConnectivityManager connectivitymanager=(ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
if(connectivitymanager.getNetworkInfo(ConnectivityManager.TYPE_WIFI).getState()==NetworkInfo.State.CONNECTED || connectivitymanager.getNetworkInfo(ConnectivityManager.TYPE_MOBILE).getState()==NetworkInfo.State.CONNECTED){
return "true";
}else{
return "false";
}
}
这是执行任何onClick
事件之前的代码
String NetworkStatus=NetworkStatus.checkConnection(getContext());
if(NetworkStatus.equals("false"))
{
alert.noInternetAlert(getActivity());
}
else
{
performAction();
}
现在如果在替换和添加新片段时没有连接可用setContentView
到不同的片段,如果连接可用,则恢复到片段?
答案 0 :(得分:1)
试试这个,看看是否有效
你在oncreate view方法中的片段
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View rootView;
if (isNetworkAvailable()) { //if true
rootView = inflater.inflate(R.layout.yourmainlayout, container, false);
}
else { //if false
rootView = inflater.inflate(R.layout.yourerrorlayout, container, false);
}
return rootView;
}
//for checking network i.e, isnetwork available method is
private boolean isNetworkAvailable() {
ConnectivityManager connectivityManager = (ConnectivityManager) getActivity().getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo activeNetworkInfo = connectivityManager.getActiveNetworkInfo();
return activeNetworkInfo != null && activeNetworkInfo.isConnected();
}
注意:要使上述方法起作用,您必须在清单文件中添加两个权限。
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
如果您希望用户轻松获取或重新加载活动以检查网络状态或重新加载活动,请使用刷卡刷新布局。
答案 1 :(得分:0)
如何以布局为例:
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:visibility="gone">
//Layout in case of no internet connection
</RelativeLayout>
然后切换“去掉”的可见性&#39;到了&#39;可见&#39;根据互联网连接,您可以实现在相同的片段生命周期中显示单独的布局。
希望它有所帮助。