2011-06-02 76 views
0

我希望我可以正確解釋。 我正在製作一個android應用程序,當你打開它時,它會連接到一個JSON服務器,拉下數據(GPS座標),並根據它收到的內容(View1)動態創建一個「菜單」。這將包含一些按鈕,當點擊它們時,將加載一個MapView(View2),其中從JSON獲取的座標表示爲地圖上的標記。代碼佈局幫助

我從setContentView(R.layout.menu)開始,然後獲取數據,onbuttonClick我加載setContentView(R.layout.map)並繪製標記。問題是,我有一個onLocationChangedListener,通過代碼初步設置菜單。當mapView打開時,當它試圖建立菜單時,我會關閉一個力量。不幸的是,這段代碼還會更新用戶位置和疊加層的位置並重新繪製地圖。

我的問題是:我可以對佈局進行檢查來說出類似if (isActive)的內容,以便我可以僅在當前視圖焦點時執行操作?

或者我應該取消整件事情並以更好的佈局重新開始? (歡迎提出建議)

摘要:::我有2個意見(菜單,地圖)。兩者都需要訪問相同的數據。目前與setContentView()一起使用,但在非活動視圖上執行操作時會給我一個強制關閉。

回答

2

如果我理解正確,您正在使用setContentView(someLayoutId)來更改每次活動顯示的內容。這不是android應用程序通常工作的方式。當您檢索資源時,您需要一個根元素來引用它,這就是爲什麼當視圖不是「活動」時會得到異常。

您有其他幾個選項來評價:

+0

我正在關注在MainActivity中實現MapActivity的developer.android.com上的Hello World Maps指南。我可能會查看該ViewSwitcher。我從來沒有聽說過它! – eoinzy 2011-06-02 20:32:25

+0

@eoinzy問題是調用兩次setContentView()。隨着第二個電話,你失去了第一個提到的膨脹的意見。 – Aleadam 2011-06-02 20:46:22

+1

咋,我覺得就是這樣。我來自一個C++背景,這是我從來沒有想過會在開始時說過的,但我希望我可以使用指針,特別是與父母和孩子創建一個鏈接列表視圖。無論如何,我已經破解了一個解決方案 - > Global BOOL告訴我我是否在mapview中(在每個setContentView之前切換),並且只在不是時調用這些函數。可怕的代碼誠然,但你可以做什麼! :D – eoinzy 2011-06-02 21:41:16