应用启动时的布局选择

webgenius

我正在尝试创建一个应用。该应用在启动时会检查共享的偏好值。

1)如果设置了共享首选项,则应启动活动1 2)如果未设置共享首选项,则应启动活动2

那么我要使用什么布局来显示屏幕的主要活动?主要活动用于启动活动1或活动2。有没有一种方法可以从主要活动中启动活动1或活动2,而无需为主要活动使用任何布局?

我不打算向用户显示主要活动。对显示活动1或活动2的兴趣。

特奈尔

使用Fragments可能是最好的解决方案,因为这样,您不必从启动的Activity中启动另一个Activity。在您的MainActivity中,只需定义一个包含Fragment占位符的布局。开始时,如果设置了共享首选项,则显示Fragment1,如果未设置,则显示Fragment2。

MainActivity的布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
    <FrameLayout
        android:id="@+id/fragment_container"
        android:layout_width="match_parent"
        android:layout_height="match_parent" />
</LinearLayout>

然后在onCreate您的MainActivity中创建相应的Fragment并将其添加到您的布局中:

FragmentManager manager = getFragmentManager();
Fragment fragment = manager.findFragmentByTag("someTag");
// only create a new fragment, if it is not created yet
if(fragment==null){
  if(preferenceIsSet){
    fragment = new Fragment1();
  }else{
    fragment = new Fragment2();
  }
}
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.fragment_container, fragment, "someTag");
transaction.commit();

http://developer.android.com/guide/components/fragments.html

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章