簡體   English   中英

方向更改上的Android按鈕狀態

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM