我正在实现包裹在片段中的Google Maps视图。当我尝试获取mapsView
的ID时,即使我的课程延伸了FragmentActivity
,我也会从getSupportFragmentManager()
获得nullpointer
例外。这是我的代码:GetSupportFragmentManager()参数返回null
MainActivity:
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.widget.TabHost;
import android.widget.TabHost.OnTabChangeListener;
public class MainActivity extends Activity implements OnTabChangeListener {
private TabHost mTabHost;
private Layouts l;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Util.setMainActivty(this);
l = new Layouts();
}
@Override
protected void onStop() {
super.onStop();
}
@Override
public void onClick(View v) {
l.setMapsLayout();
}
}
我maps_layout片段
<?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"
class="com.google.android.gms.maps.MapFragment" />
布局类:
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.LoaderManager;
import android.text.GetChars;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import com.google.android.gms.maps.GoogleMap;
import com.google.android.gms.maps.MapFragment;
import com.google.android.gms.maps.MapView;
import com.google.android.gms.maps.SupportMapFragment;
public class Layouts extends FragmentActivity {
private MapView mMapView;
public void setMapsLayout() {
MainActivity mainActivity = Util.getMainActivity();
ViewGroup layoutContainer = (ViewGroup) mainActivity
.findViewById(R.id.layoutContainer);
layoutContainer.removeAllViews();
View child1 = LayoutInflater.from(mainActivity).inflate(
R.layout.maps_layout, null);
layoutContainer.addView(child1);
GoogleMap mMap = ((SupportMapFragment) getSupportFragmentManager()
.findFragmentById(R.id.map)).getMap();
}
}
当我到getSupportFragmentManager()
它的值是零。这是我看到:
有人知道问题是什么吗?谢谢!