2011-07-25 38 views
1

this question,我得到了一個關於如何使一個微調的位置改變另一個微調的條目的答案。但現在,當我在手機上調試它時,我意識到,如果我旋轉屏幕,第一個旋轉器保持正確,但後面兩個將它們的位置改回0.我不認爲我想完全處理方向改變我自己,所以我如何解決這個問題?方向改變改變微調的位置

+0

它那種意義,出現這種情況時,OS可重建活動的狀態時的方向改變,但改變第一微調的位置改變了未來兩年的適配器,從而將它們的位置重置爲0. – MarioAran

回答

2

您只需要將一些信息保存在onSaveInstanceState中的包中並在OnRestoreInstanceState中讀取它(並相應地設置spinners)即可。

一個很好的說明是在這裏:Saving Android Activity state using Save Instance State

+0

我是否仍然需要保存所有三個微調控件的位置,EditText中的文本,ListView中的項目等...? – MarioAran

+0

不,你不需要做任何事情(保存文本,x-y位置等)。 UI元素將全部存在,並保留其狀態,而不是所選項目。所有你需要保存的是每個微調器的選定ID或項目(取決於你的微調器代表什麼)。你可能會發現你想修改景觀佈局以更好地適應方向,但這是一個單獨的問題。 – aha

+0

好的,我如何獲得微調器的選定項目位置?我嘗試鍵入'savedInstanceState.putInt(「spinner1Pos」,spinner1.getSelectedItemPosition());',但它說'spinner1'不能解決... – MarioAran

0

Setting the background of an Activity

這裏看到這個問題,用代碼中的答案,修改微調的方向滿足您的需求。

+0

但是,這不會讓我處理所有spinners的位置,EditText中的文本以及動態填充的ListView中的所有元素嗎? 哦,按位置我的意思是選擇的項目索引,而不是佈局位置。 – MarioAran

+0

Ow ..Sorry ..我得到了它的佈局位置。嘗試用現有數據重新生成紡紗器。那麼你將不需要處理亂七八糟的職位。 –