当我的屏幕方向在android中发生变化时,我如何将复选框重置为未选中?
我有可以勾选的复选框。但是,如果这些都被选中,我想让他们全部取消选中,如果屏幕方向已经改变。我怎么能着手做那样的事呢 将使用savedInstanceState对象调用当我的屏幕方向在android中发生变化时,我如何将复选框重置为未选中?,android,android-studio,configuration,Android,Android Studio,Configuration,我有可以勾选的复选框。但是,如果这些都被选中,我想让他们全部取消选中,如果屏幕方向已经改变。我怎么能着手做那样的事呢 将使用savedInstanceState对象调用onCreate()回调方法,以便您可以检查它是否为null,然后取消选中所有复选框 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); .... if(savedIn
onCreate()
回调方法,以便您可以检查它是否为null,然后取消选中所有复选框
@Override protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
....
if(savedInstanceState != null) {
// uncheck all of the checkboxes.
}
}
试试这个
//步骤1使用此方法循环所有布局以查找复选框并重置它们
void取消选中复选框(视图组youRootView){
//步骤2:改写onConfigurationChanged方法以检测方向更改,并在传递包含所有复选框作为参数的父级根布局时调用内部的上一个pethode
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
unCheckAllCheckBoxs((ViewGroup) findViewById(R.id.root));
}
如果它有效,现在让我来解决问题。我通过重写
onConfigurationChanged
部分解决了问题,方法是检查方向是否更改,如果更改了,请选中checkbox.toggle()
。唯一仍然存在的问题是,现在当方向更改并单击复选框时,它们不会在我的代码中设置对象的可见性,而不是在配置更改之前
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
unCheckAllCheckBoxs((ViewGroup) findViewById(R.id.root));
}