2016-12-17 73 views
0

我想用按鈕打開和關閉地圖(更改佈局)。打開關閉帶按鈕的地圖(更改佈局)

我有一個按鈕MainActivity其中打開SecondActivity和這臺maps_layout正確。

我在地圖上有一個按鈕。這切換到另一個佈局正確。

當我想切換回來時,我得到Fatal Exception

我的代碼:

public class Game extends FragmentActivity implements OnMapReadyCallback { 

    private GoogleMap mMap; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     mapy(); 
    } 

    public void mapy() { 
     setContentView(R.layout.mapy_test); 
     // Obtain the SupportMapFragment and get notified when the map is ready to be used. 
     SupportMapFragment mapFragment = (SupportMapFragment) getSupportFragmentManager() 
      .findFragmentById(R.id.map_test); 
     mapFragment.getMapAsync(this); 

     Button changetocam = (Button) findViewById(R.id.changetocam); 

     changetocam.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       cam(); 
      } 
     }); 
    } 

    public void cam() { 
     setContentView(R.layout.ingame_masteroverlay_layout); 

     Button changetomap = (Button) findViewById(R.id.changetomap); 

     changetomap.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       mapy(); 
      } 
     }); 
    } 
} 

以下是錯誤日誌:

`FATAL EXCEPTION: main Process: auftour.mrorhan.probieren, PID: 2689 android.view.InflateException: Binary XML file line #6: Binary XML file line #6: Error inflating class fragment Caused by: android.view.InflateException: Binary XML file line #6: Error inflating class fragment Caused by: java.lang.IllegalArgumentException: Binary XML file line #6: Duplicate id 0x7f0f010b, tag null, or parent id 0xffffffff with another fragment for com.google.android.gms.maps.SupportMapFragment` 

我認爲錯誤是因爲我不關閉mapy_test佈局,所以我有雙重的ID,當我嘗試再次連接到地圖。

+1

你可以發佈你的logcat錯誤嗎? – antonio

+0

致命例外:主 進程:auftour.mrorhan.probieren,PID:2689 android.view.InflateException:二進制XML文件行#6:二進制XML文件行#6:錯誤的擴展類片段 引起:android.view。 InflateException:二進制XML文件行#6:錯誤擴展類片段 導致:java.lang.IllegalArgumentException:二進制XML文件行#6:重複標識0x7f0f010b,標記null或父標識0xffffffff與com.google.android的另一個片段.gms.maps.SupportMapFragment – MrOrhan

+0

順便說一句,我認爲錯誤來了,我不關閉「mapy_test」佈局,所以我有doble id,當我嘗試再次連接到地圖? – MrOrhan

回答

0

//試試這個對我有用 查看v;

@Override 
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 
    if (v != null) { 
     ViewGroup parent = (ViewGroup) view.getParent(); 
     if (parent != null) 
      parent.removeView(v); 
    } 
    try 
{ 
     v = inflater.inflate(R.layout.mapy_test, container, false); 
    } catch (InflateException e) { 
     /* map is already there, just return view as it is */ 
    } 
    return v; 
} 
+0

ty爲你的答案,我應該把它放在地方,我從地圖更改爲其他佈局? – MrOrhan

+0

你在使用碎片嗎?我不工作與片段 – MrOrhan

+0

是的,我正在與片段 – gautam

0

所以,夥計們,我解決了我的問題。我使用框架和一個額外的框架容器佈局。如果有人有同樣的問題,我可以寫我自己的代碼。