2013-09-27 52 views
0

我正在实现包裹在片段中的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()它的值是零。这是我看到:enter image description here

有人知道问题是什么吗?谢谢!

回答

0

您不能仅从另一个Activity创建Activity的实例并像那样使用它。我不确定你想要达到什么目标,但你需要改变你的代码才能使它工作。

0

您可以将MainActivity扩展为FragmentActivity,因为谷歌地图支持FragmentActivity。 Inside MainActivity活动类,可以实现setMapsLayout()该方法。

相关问题