我有一個基本上用於啓動/停止的按鈕。所以最初按鈕的文本被設置爲開始。我附加了一個OnClickListener。所以每當它被點擊我改變它的文本。所以如果是開始,它會變成停止,反之亦然。Android更改視圖 - 按鈕狀態得到重置
問題出現在我將手機視圖從縱向更改爲橫向或反之亦然時,按鈕文本被重置。
因此,例如我點擊開始按鈕---它改變停止。現在,如果我傾斜手機以更改視圖,則按鈕文本將設置爲重新開始。
我是否以錯誤的方式使用按鈕?
我有一個基本上用於啓動/停止的按鈕。所以最初按鈕的文本被設置爲開始。我附加了一個OnClickListener。所以每當它被點擊我改變它的文本。所以如果是開始,它會變成停止,反之亦然。Android更改視圖 - 按鈕狀態得到重置
問題出現在我將手機視圖從縱向更改爲橫向或反之亦然時,按鈕文本被重置。
因此,例如我點擊開始按鈕---它改變停止。現在,如果我傾斜手機以更改視圖,則按鈕文本將設置爲重新開始。
我是否以錯誤的方式使用按鈕?
不,您正在以正確的方式使用按鈕。
你所看到的是「配置改變」。當你傾斜你的設備時,Android會重新創建你的活動並重新創建它的所有視圖(所以,他們會獲得XML中描述的默認標題)。
您需要爲您的活動做
android:configChanges="orientation|keyboardHidden"
。這是不適合的,如果你有不同的風景和portraint方向的佈局,當你需要...作進一步的解釋
見this article你應該保存按鈕狀態。當屏幕方向改變時,onCreate被調用,所有的app變量都被重新初始化。在這裏閱讀更多http://developer.android.com/reference/android/app/Activity.html
http://pastebin.com/ZdceXVzG我在這裏做了更改。我不斷得到一個NullPointerException。我究竟做錯了什麼。 – varunthacker 2011-03-21 10:30:51
導致NPE的線路是什麼?什麼是你的代碼中的'globals'?你爲什麼要做'putAll'電話?另外,'savedInstanceState'並不總是被填充(實際上,在第一次活動時它啓動它爲空),在對它執行'getString'之前檢查它是否爲空。 – Olegas 2011-03-21 10:59:02