gpt4 book ai didi

android - 在 Activity 之间传递 fragment

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:22:12 25 4
gpt4 key购买 nike

我想做一个支持纵向和横向的应用程序。布局有两个 Pane ,左侧是选项,右侧显示结果。选择一个选项后,右侧 Pane 会显示它。但是对于肖像,没有足够的空间,所以需要一个单独的 Activity 。每个选项都会产生不同类型的 fragment ,所以我不想为每个选项创建一个 Activity ,因为 Activity 之间的所有变化都是在那里添加的 fragment 。我想将一个 fragment 从主要 Activity 传递到新 Activity ,我该怎么做?

最佳答案

编辑:将提问者真正想要的内容移至顶部。

如果要在创建 Activity 时将数据传递给 Activity ,请调用 Intent 的版本.putExtra()startActivity() 中使用的 Intent 。然后,您可以使用 getIntent().getStringExtra() 来(例如)在 Activity 中获取额外的字符串。

假设您在名为 myString 的第一个 Activity 中有一段字符串数据。

Intent intent = new Intent(this, SecondActivity.class);
intent.putExtra(EXTRA_NAME_CONSTANT, myString);
startActivity(intent);

现在,在 onCreate 中的新 Activity 中,您将执行以下操作:

String myString = this.getIntent()
.getStringExtra(EXTRA_NAME_CONSTANT, "default return value here");

一些注意事项:

  • 对于那个 EXTRA_NAME_CONSTANT,我的意思是创建一个“your.package.name.SomeString”形式的字符串常量,例如“com.example.MyString”。就我个人而言,我什至会使用一个资源(以 getString(R.string.extra_my_string) 的形式访问)作为临时 Actor 的名字。他们建议您在其前面加上您的包名称。
  • 您可以放入和获取多种类型的数据,从字符串到数组,甚至是可序列化的数据。

与其为不同的布局方向创建单独的 Activity ,不如考虑 using resource qualifiers to provide alternative layouts .

总而言之,在这样的结构中制作两个布局:

/res/layout/yourlayout.xml
/res/layout-land/yourlayout.xml

两个 XML 文件的名称相同。然后在一个中设置默认的纵向布局,在另一个中设置横向版本。

当您在 onCreate 中扩充布局时(当它在运行时布局更改时自动这样做时)它会为您选择正确的布局。

关于android - 在 Activity 之间传递 fragment ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6656179/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com