我在一个FragmentActivity中有一个FragmentActivityr,其中有两个布局文件,每个方向一个。ViewSwitcher由radio group控制。
当我旋转屏幕时,一切都如我所期望的那样,正确的布局文件被用来呈现屏幕。
然而,无线电组的onCheckedChanged事件是在屏幕旋转时触发的。
它的监听器看起来如下(在onCreate中创建):
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//snip
radios.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int index) {
viewSwitcher.showNext();
}
});
}当屏幕旋转时,如何在不触发viewSwitcher.showNext()的情况下在listener中调用它?
发布于 2012-06-21 07:20:05
好吧,我找到了一个麻烦的解决方案,但我希望有一个更好的解决办法。
private boolean wasRotatedHack;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
this.savedInstanceState = savedInstanceState;
if (savedInstanceState == null) {
wasRotatedHack = false;
} else {
wasRotatedHack = true;
}
tabRadios.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(RadioGroup radioGroup, int index) {
if (!wasRotatedHack) {
viewSwitcher.showNext();
} else {
wasRotatedHack = false;
}
}
});
startInspectionButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(getApplicationContext(), InspectionActivity.class));
}
});
}https://stackoverflow.com/questions/11133092
复制相似问题