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