我有一个ListActivity,我希望在手机的方向为人像时显示,我还有另一个正常的活动,我想在用户将手机旋转到横向模式时显示。
一些代码:
public class ListActivity extends ListActivity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (this.getResources (). getConfiguration (). orientation == Configuration.ORIENTATION_PORTRAIT) {
//Do stuff
}else if (this.getResources (). getConfiguration (). orientation == Configuration.ORIENTATION_LANDSCAPE) {
Intent myIntent = new Intent(getApplicationContext(), AnotherActivity.class);
startActivity(myIntent);
}
}
}
这种方法有效,但有一些问题。有更正确的方法吗?此方法的问题在于,当您旋转手机并按后退按钮时,由于手机未旋转,因此屏幕会变黑。那么我应该以另一种方式实现旋转,还是以某种方式修改后退按钮,以便用户无法返回上一个Activity?
答案 0 :(得分:1)
这是一种正常的方式。但它很长 - 等待5秒。
还有另一种方式:
将方向更改注册为配置更改
一个。
activity android:name=".SomeActivity"
android:label="@string/app_name"
android:configChanges="orientation"
并将其作为配置更改进行处理。
乙
@Override
public void onConfigurationChanged(Configuration newConfig) {
super.onConfigurationChanged(newConfig);
setContentView(R.layout.main);
SetupActivity();
}