簡體   English   中英

每次方向改變,按鈕狀態都會改變

[英]Every time orientation change, button state changes

無論應用程序處於什么方向,啟動時都可以正常工作,但是在更改方向后,如果選擇了按鈕,則該按鈕將變為未選中狀態。 這是按鈕的drawable xml

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">   

<item android:state_selected="true"    
    android:drawable="#fff" />
<item android:state_enabled="false"   
    android:drawable="000" />   
<item android:state_checked="true"    
    android:drawable="#fff" />   
<item android:drawable="#f0f0f0" />   

</selector>  

當設備上的方向發生變化時,您的活動將被銷毀並重新創建。 您可以通過實現onSaveInstanceState(Bundle outState)來保存和恢復按鈕的狀態。 有關活動生命周期以及如何使用onSaveInstanceState/onRestoreInstanceState更多信息,請參閱本文

您可以使用isSelected將按鈕的狀態寫為布爾值。 例如,在您的活動中,您可以執行以下操作:

public static final String BUTTON_STATE = "buttonState";

@Override
public void onSaveInstanceState(Bundle outState) {
    outState.putBoolean(BUTTON_STATE, button.isSelected());

    // call superclass to save any view hierarchy
    super.onSaveInstanceState(outState);
}

要恢復按鈕的狀態,可以執行以下操作:

@Override
public void onRestoreInstanceState(Bundle savedInstanceState) {
    button.setSelected(savedInstanceState.getBoolean(BUTTON_STATE));
}

這是有關如何使用片段保存狀態的其他資源

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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