当前位置: 首页 > 知识库问答 >
问题:

从片段创建子意图

景元徽
2023-03-14

我使用FragmentActivity在片段之间切换。但我希望在片段上有一个管理按钮,当我单击它时,一个新的片段或活动看起来像一个孩子(在操作栏中有后退按钮)。

我怎样才能做到?

这是我的代码,可以使用,但“后退”按钮不会出现在操作栏中:

片段:

public class Reports extends Fragment {
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (container == null) {
            return null;
        }
public void onClick(View v) {
                Intent intent = new Intent(getActivity(), LoginActivity.class);
                getActivity().startActivity(intent);
            }
        });
    }
}

活动(目前……但如果需要,可能会出现碎片?):

public class LoginActivity extends ActionBarActivity {
    public static final String TAG = LoginActivity.class.getSimpleName();
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.login);
        Button loginButton = (Button) findViewById(R.id.loginButton);
        loginButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                TextView emailText = (TextView) findViewById(R.id.emailText);
                TextView passwordText = (TextView) findViewById(R.id.passwordText);
                ParseUser.logInInBackground(emailText.getText().toString(), passwordText.getText().toString(), new LogInCallback() {
                    public void done(ParseUser user, ParseException e) {
                        if (user != null) {
                            Log.i(TAG, "Yeahhh Login OK");
                            finish();
                        } else {
                            runOnUiThread();
                        }
                    }
                });
            }
        });
    }

也许我必须更改舱单中的某些内容?

共有3个答案

丁德义
2023-03-14

如果您正在启动一个新活动,您可以通过编写shouldDisplayHomeUp()来启用其中的后退按钮 和on back应该将您带到back stack中的上一个活动。在另一个添加新片段的情况下,你可以查看这个答案以供参考,因为它提到当你添加新片段时,你会像这样将其添加到后堆栈中

getSupportFragmentManager().beginTransaction()
                           .add(detailFragment, "detail")
                           // Add this transaction to the back stack
                           .addToBackStack()
                           .commit();

这将使“后退”按钮将您带到上一个片段

长孙知
2023-03-14

你需要覆盖onCreateOptionsMenuonOptionsItemSelec。在onCreateOptionsMenu方法中执行以下操作:将菜单充气到操作栏中。您可以在res/men文件夹下定义菜单项的内容。

接下来,在“选项项选定”(Options ItemSelected)方法中,您可以处理在操作栏中添加的后退按钮的单击。还要记住一件事。在清单中,请使用包含动作栏的主题。示例:在应用程序标记下,使用Android:主题=“@android:style/theme.Light”而不是类似Android:主题=“@android:style/theme.Light.NoTitleBar

闻人凯泽
2023-03-14

您需要做的就是在当前活动中启用它。

当在FragmentActive中时:getActionBar(). setHomeAsUpEngic(boolean)

否则,在片段内:getActivity()。getActionBar()。setHomeAsUpEnabled(布尔)

 类似资料:
  • 此时,Frag2在堆栈上,是唯一可见的片段。我使用了replace和addToBackStack,因为我需要后退导航。我的问题是,当我在Frag2内旋转屏幕时,活动中的super.oncreate(savedInstanceState)方法调用frag1的构造函数。 在用户按下后退按钮之前,有没有什么方法可以避免调用Frag1的构造函数?

  • YQL(简化): 结果(简化): 如何告诉Vespa从“计算机”而不是“de”创建代码段?

  • MainActivity(扩展了fragmentActivity)有listview,它调用listviewadapter,其中有一个带有ViewpagerAdapter的ViewPager。现在,如果我需要在ViewPager中生成5个片段,如何将getFragmentManager()传递给适配器。 MainActivity[fragmentActivity]---->Listview----

  • 问题内容: 我发现将UIImage]导出为movie,但是所有这些都在ObjectiveC中,我无法在Swift中弄清楚。 我需要从[UIImage]创建视频 通过上面的链接研究Zoul的答案。第1部分)编写器连线 到目前为止,我有: 我不知道他的正确的Swift版本 问题答案: 构造文字很简单: 至于其他所有内容,我鼓励您通读Apple的The Swift Programming Languag

  • 我想将数据从父片段传递到选项卡式片段(子片段),以便传递初始数据(当父片段第一次加载时),我使用了Bundle数据。当在子片段的嵌套片段中时,我调用PopbackStack(),以便通过单击按钮返回。在那里,我需要更新之前传递到子选项卡片段的捆绑数据。捆绑数据不会得到更新的数据集 父片段-初始状态 子片段-Tab片段 孩子- 我错过了什么?请帮忙

  • 我有一个,它创建一个,然后这个创建另一个: 这让我想到。是否真的可以删除并转到? 提前感谢您的时间,我在网上找不到任何合适的信息!