[英]Android Button State on Orientation Change
我在保持按鈕狀態時遇到問題-說Button1.setActivated(true)
。 更改方向后,該位置將被忘記,並且不會重新激活或顯示為已激活。
我想我可以使用IF來測試Button狀態的狀態,將其存儲在變量中,然后使用onSaveInstanceState / onRestoreInstanceState返回它。 然后在重新創建每個按鈕時對其添加更多檢查。 但這似乎是一種復雜的處事方式。
當然會有更好的方法嗎?
我對Android還是很陌生,所以我可能會遺漏一些明顯的東西。
謝謝。
更新:setActivated使用選擇器更改按鈕的背景顏色。 這種顏色在方向改變中被遺忘了。
button_selector_background.xml
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@color/button_background_active"
android:state_activated="true" />
<item android:drawable="@color/button_background" />
</selector>
MainActivity.java
public void onClick(View arg0) {
switch(arg0.getId()){
case R.id.button_1:
button_1.setActivated(true);
}
}
這就是Android的工作方式。 建議您使用onSaveInstance / onRestoreInstance的修復方法是正確的處理方法。 之所以需要這樣做,是因為您的整個活動均已銷毀並重新創建。 那些保存的捆綁包是將“活動”狀態恢復到之前狀態的關鍵。 您可以在此處了解更多信息: 保存狀態
請注意,恢復狀態的需求不會僅發生在屏幕方向等配置更改期間。 當用戶背景為您的應用程序並隨后重新打開它時,可能會發生這種情況。 還有許多其他情況。 使用保存/恢復狀態可確保它能夠處理所有這些情況並正確激活您的活動……就您而言,激活該按鈕。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.