我遇到了以下问题。我的程序是秒表。我有res/layout/main.xml
和res/layout-land/main.xml
但它的工作是错误的。当我打开手机时,程序停止。我认为它再次呼吁创建。我在Manifest中添加了以下行
android:configChanges="keyboardHidden|orientation"
但是在此布局活动未加载之后。
我尝试了下一个示例,但它不起作用
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
int ot = getResources().getConfiguration().orientation;
switch (ot) {
case Configuration.ORIENTATION_LANDSCAPE:
setContentView(R.layout.main_land);
break;
case Configuration.ORIENTATION_PORTRAIT:
setContentView(R.layout.main);
break;
}
Toast.makeText(this, "Helloo", Toast.LENGTH_SHORT).show();
}
@Override
public void onConfigurationChanged(Configuration newConfig) {
// TODO Auto-generated method stub
super.onConfigurationChanged(newConfig);
int ot = getResources().getConfiguration().orientation;
switch (ot) {
case Configuration.ORIENTATION_LANDSCAPE:
setContentView(R.layout.main_land);
break;
case Configuration.ORIENTATION_PORTRAIT:
setContentView(R.layout.main);
break;
}
}
@Override
public Object onRetainNonConfigurationInstance() {
// TODO Auto-generated method stub
return super.onRetainNonConfigurationInstance();
}
答案 0 :(得分:1)
当您在AndroidManifest.xml中包含以下命令,即 android:configChanges =“orientation”时,您手动禁用默认的布局更改行为,是以新的方向重新开始您的活动。
非常有用的一点是,您需要在onConfigurationChanged中手动更改 CONFIGURATION_LANDSCAPE / CONFIGURATION_PORTRAIT 时使用的布局。
请注意,根据Android开发者网站上的活动文档,onConfigurationChanged是“最后的选择”选项 - 通常最好保持状态并让系统重新启动您的应用。
推荐链接如下: - Link for handling Configuration。我希望这适合你。