2010-11-09 89 views
0

在我的Android應用程序中,我有兩個自定義視圖類 - PortraitClass和LandscapeClass。他們都做同樣的事情。在運行應用程序時,視圖類從SDCard獲取一些圖片,然後進行處理(偏斜等)並顯示它們。兩個類別之間的唯一區別在於屏幕上的圖片佈局略有不同。Android:在視圖之間傳遞數據

我有兩個display.xml文件(一個在layout文件夾下,另一個在layout-land下)。佈局文件夾下的一個添加肖像,另一個添加景觀類。

在方向更改上,我想從一個類發送信息(圖片號碼和幾個位圖)到另一個類,所以我不必再次獲取所有位圖,並顯示正在顯示的圖片。

我覺得可以理解的東西有點混亂。我嘗試了以下this_example,但我注意到在onRestoreInstance中,Parcelable對於「mSuperState」爲null,並且我得到了classCastException @「SavedState ss =(SavedState)狀態」。我試圖通過的整數(圖片號碼)在那裏。我不確定我做錯了什麼。

回答

1

你可以在應用程序類使用全局單。例如一個「AssetManager」可以在這裏找到:

public class YourApplication extends Application { 

    public AssetManager assetManager = new AssetManager(); 

    @Override 
    public void onCreate() 
    { 
     super.onCreate(); 
    } 
} 

然後,您可以從另一個活動調用它:

YourApplication application = ((YourApplication) this.getApplication()); 
application.assetManager.someFunction(); 
+0

謝謝,它像一個魅力工作! – Manny 2011-01-14 18:47:06

0

不知道這是你在找什麼,但我的東西總是在onCreate(Bundle savedInstanceState)方向改變。我的所有文本都是編輯文本框,所以我不確定它是如何爲你工作的。

還檢查了這一點有關中途下下來「應堅持國家信息結構變更時」 http://www.devx.com/wireless/Article/40792/1954

+0

謝謝,我試圖做同樣的,而是通過一個視圖類,而不是活動。我認爲我的問題是,super.onSaveInstanceState返回null,我不知道爲什麼。 – Manny 2010-11-09 23:34:13