我根据网络状态加载不同的视图。当网络可用时,我正在加载片段,当网络不可用时,我正在加载图像。代码如下所示
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (!isConnectedToNetwork()) {
setContentView(R.layout.no_internet_connection);
Toast.makeText(getApplicationContext(), "Not connected to internet. Cannot display the map.", Toast.LENGTH_LONG).show();
}
}
@Override
protected void onResume() {
super.onResume();
if (isConnectedToNetwork()) {
setContentView(R.layout.activity_display_map);
setUpViews();
} else {
stopService(new Intent(getApplicationContext(), VoiceLaunchService.class));
setContentView(R.layout.no_internet_connection);
Toast.makeText(getApplicationContext(), "Not connected to internet. Cannot display the map.", Toast.LENGTH_LONG).show();
}
}
private void setUpViews() {
map = ((MapFragment)getFragmentManager().findFragmentById(R.id.map)).getMap();
}
重现错误的步骤:
步骤1:使用连接到互联网的设备启动应用程序。看到地图 步骤2:断开设备与互联网的连接(应用程序被发送到后台)。现在该应用程序显示"没有互联网连接"页面(应用程序被带到前面)。 第3步:现在再次连接到互联网。以下错误显示在下面
java.lang.RuntimeException:无法恢复活动。 android.view.InflateException:二进制XML文件行#2:错误膨胀类片段
我的布局文件如下所示
<?xml version="1.0" encoding="utf-8"?>
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name="com.google.android.gms.maps.MapFragment"/>
我不明白我哪里出错了。我已经浏览了这个网站上的所有解决方案,但都是徒劳的。任何帮助都会感激不尽
答案 0 :(得分:-1)
使用FragmentActivity扩展您的活动
2.将setUpViews()方法改为
private void setUpViews() {
map = ((SupportMapFragment)getSupportFragmentManager().findFragmentById(R.id.map)).getMap();
}