因此,我在Android Developers上遵循了本指南 他们建议使用片段向用户显示设置。

我创建了xml和字符串以及片段:

public class SettingsFragmentApp extends PreferenceFragment{
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        addPreferencesFromResource(R.xml.preferences_app);
    }
}

我想在MainActivity页面上显示此内容,而不创建仅托管该片段的其他活动(我认为Google推荐的更高版本的optioon杀死了这一点……为什么我应该只为一个片段创建另一个活动?)。 所以我在MENU添加了一个选项,并在MainActivity像这样处理它:

        //inside onOptionsItemSelected(MenuItem item)
        case (R.id.action_settings_user):
            getFragmentManager().beginTransaction().replace(android.R.id.content,
                    new SettingsFragmentUser()).commit();
            return true;

这样,设置片段将按预期显示,但是一旦用户单击“后退”按钮,应用程序将退出,因为它仍在MainActivity

所以问题是,如何处理后退按钮以保存设置更改并将用户带回MainActivity?

===============>>#1 票数:1 已采纳

如果要使用后退按钮功能,则必须将Fragment添加到事务中的后退堆栈中。

FragmentManager manger = getSupportFragmentManager();
FragmentTransaction transaction = manager.beginTransaction();
transaction.replace(R.id.flFragmentContainer, fragment);
transaction.addToBackStack(null); // Add fragment to back stack.
transaction.commit();

但是不建议这样做。 他们建议您使用额外的“ Activity ”的原因是,您可以使用“ Activities而不是片段来构建导航堆栈。 使用Fragments构建导航堆栈可能很快就会成为问题。 Activities只是Fragments容器。 因此在任何应用程序,你将会有很多Activities不从包含任何一边Fragment和这些Activities只是用来建立一个导航堆栈。 在真正的大型应用程序中,我倾向于编写一个抽象的基本Activity ,以实现所需的所有基本功能,并尽可能在Activity上重用它。

  ask by Saeid Yazdani translate from so

未解决问题?本站智能推荐:

1回复

显示或隐藏片段菜单

我正在尝试创建一个具有三个不同片段的活动作为菜单。 根据活动所具有的一些数据,用户应该只看到他需要的片段。 这是我的主要XML文件: 这是我的主要Java文件: 这三个片段是它们的项目列表数组的相同部分。 这是片段Java文件上的一个: 我尝试使用set
1回复

使用片段在“活动”中创建新的活动

我正在尝试在SecondFragment类中添加新活动,所以我要做的是在second_layout.xml中添加按钮 单击开胃菜按钮后,我想用开胃菜页面打开一个新活动。 我想在我的SecondFragment类中设置所有内容 这是我的主要活动课 请任何人帮助我在s
1回复

Android Java活动显示可见的片段

我现在正在学习活动和片段。 我有一个简单的应用程序,每当我单击按钮时,该应用程序都会更改“片段”视图。 我还注意到,我可以在不同的片段之间滑动。 在我的活动中,当我单击一个按钮时,我有一个TextView,它将显示我所在的片段。在活动之间滑动时,我还希望活动的TextView显示我在其
1回复

删除另一个片段活动中的片段

我有一个实现onClickListener的片段,然后onClickListener尝试删除一个片段。 我得到一个红色的线下badFragment在transaction.remove(badFragment); 。 我最好的猜测是,因为它无法告诉该片段是什么/它在哪里。 我将如
1回复

儿童活动导航Android中的SlidingMenu

我试图将左侧幻灯片菜单添加到我的应用程序中,但是将幻灯片菜单添加到该片段的以下子活动中遇到的麻烦很小。 到目前为止,我已经尝试使用此滑动菜单示例,并且当我现在在“ Find People”片段类中获得此图像时,我具有静态数据。 在按钮上查找人(父母活动)单击上按钮--->朋友(
2回复

尝试从片段活动中更新共享首选项

我正在为我的应用构建自定义铃声选择器。 该类称为SoundPicker ,它扩展了FragmentActivity 。 我正在尝试将选定的铃声保存到应用程序的设置文件中。 这是我的代码: 问题是,我得到一个错误,指的新字符串我正在尝试设置- selectedResource
1回复

活动中重叠的片段

我已经使用“ developer.android.com”教程学习了android应用开发了几天。 目前,我正在学习片段和框架集的概念。 我已经使用片段编写了一个hello world程序。 但问题是我的片段布局两次插入片段容器中,结果是框架集中有2个重叠的片段。 您能告诉我为什么会这样
1回复

活动ActionBar在片段中不可见

我的片段中有ActionBar问题。 它在其中不可见,因此我无法执行getActionBar().setDisplayHomeAsUpEnabled(true); 在我的SignUpActivity.java 。 在所有其他活动(不是片段)中,它都是可见的。 你能告诉我我做错了吗?
2回复

我想将数据从活动转移到片段,然后在片段中显示数据。 我的代码不起作用

活动类是MainActivity.java,片段类是frganswer.java。 我在活动中使用edittext取两个数字,然后需要在片段中显示其总和。 没有错误,但是当我尝试在AVD上运行它时,它“没有响应”。 请指出我的错误。 MainActivty.java frga
1回复

从片段调用父活动方法

我有点困惑,这是调用“父活动”方法的最佳方法,因为我可以轻松地从片段中调用“父活动”方法 和其他方式,我必须创建界面并做onAttach的东西等,这也在android开发者网站链接中进行了说明 现在我的问题是最好的方法是什么,为什么?