2011-03-20 71 views
0

我有一個基本上用於啓動/停止的按鈕。所以最初按鈕的文本被設置爲開始。我附加了一個OnClickListener。所以每當它被點擊我改變它的文本。所以如果是開始,它會變成停止,反之亦然。Android更改視圖 - 按鈕狀態得到重置

問題出現在我將手機視圖從縱向更改爲橫向或反之亦然時,按鈕文本被重置。

因此,例如我點擊開始按鈕---它改變停止。現在,如果我傾斜手機以更改視圖,則按鈕文本將設置爲重新開始。

我是否以錯誤的方式使用按鈕?

回答

0

不,您正在以正確的方式使用按鈕。

你所看到的是「配置改變」。當你傾斜你的設備時,Android會重新創建你的活動並重新創建它的所有視圖(所以,他們會獲得XML中描述的默認標題)。

您需要爲您的活動做

  • 禁用配置更改。爲此,請將以下內容添加到清單的活動代碼中:android:configChanges="orientation|keyboardHidden"。這是不適合的,如果你有不同的風景和portraint方向的佈局,當你需要...
  • 通過覆蓋你的活動的onSaveInsatnceState方法處理配置更改,保存在那裏的狀態,然後在onCreate方法中使用它。

作進一步的解釋

+0

http://pastebin.com/ZdceXVzG我在這裏做了更改。我不斷得到一個NullPointerException。我究竟做錯了什麼。 – varunthacker 2011-03-21 10:30:51

+0

導致NPE的線路是什麼?什麼是你的代碼中的'globals'?你爲什麼要做'putAll'電話?另外,'savedInstanceState'並不總是被填充(實際上,在第一次活動時它啓動它爲空),在對它執行'getString'之前檢查它是否爲空。 – Olegas 2011-03-21 10:59:02