【发布时间】:2010-11-12 17:25:12
【问题描述】:
我是 Android 开发新手。我正在尝试使用方向更改在两个活动之间切换。我的想法是使用三个活动一个 TabActivity 和一个正常的活动。这是一些伪代码:
public class Main extends Activity{
// this is the entry point into my app
@Override
public void onCreate(...){
if(this.getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE){
// Start Activity1
} else { //Start Activity2}
}
Activity Activity1 和 Activity2 将覆盖其 onPause() 函数,以再次启动 Main Activity。
onPause(){
Intent intent = new Intent(this.ActivityX, Main.class);
startActivity(intent);
}
\/\/\/\/编辑\/\/\/\/
好的,我采取了不同的方法。因为我需要一个 TabActivity,因为我希望能够在我的选项卡中启动不同的活动(我认为在这种情况下我必须使用 TabActivity)。
我已经编辑了 Manifest.xml 并为 TabActivity 和第二个 Activity 添加了 android.configChanges="orientation"。然后我重写了 onConfigurationChanged() 函数。通过这种方法,我可以从横向(这是“正常”活动)切换到纵向(TabActivity)。 反过来也行不通,我还不知道为什么。我有完全相同的 onConfigurationChanged 函数(复制和粘贴),并且只更改了基本部分。
覆盖在选项卡中启动的活动的 onConfigurationChanged 也没有效果。
【问题讨论】:
-
为什么要在方向改变时切换整个活动而不是仅仅切换布局?
-
在横向中我想显示一个图形,您可以在其中选择图片。我想在纵向视图的选项卡中显示相应的数据。而选项卡式视图需要一个 TabActivity。
-
@mbaird:请注意,当方向改变时,当前活动将被终止并创建一个新活动。登录
onDestroy和onCreate看看会发生什么。 -
@Darokthar:你不需要
TabActivity来使用标签。请不要在方向更改时切换整个活动。 -
@CommonsWare:我的经验是,当方向发生变化时,活动会自动终止并重新创建(即使它是同一个类)。那么为纵向和横向使用不同的活动不应该那么昂贵吗?你有这方面的经验吗?
标签: android screen-orientation