我正在尝试创建一个计算器,在肖像模式下有一个简单的版本,在景观中有一个科学版本旁边有一个过去计算的列表。我遇到了将肖像模式的textview中的当前值传递给横向模式的问题。
我的主要activity:
private FragmentManager fm;
Fragment fragmentScientific, fragmentList
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
fm = getSupportFragmentManager();
setUpFragments();
}
private void setUpFragments() {
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_LANDSCAPE) {
fragmentScientific= fm.findFragmentById(R.id.container_ui_landscape);
fragmentList= fm.findFragmentById(R.id.container_list);
if ((fragmentScientific == null) && (fragmentList == null)) {
fragmentScientific= new ScientificFragment();
fragmentList= new RecordListFragment();
fm.beginTransaction()
.add(R.id.container_ui_landscape, fragmentScientific)
.add(R.id.container_list, fragmentList)
.commit();
}
} else {
fragmentScientific= fm.findFragmentById(R.id.container_ui_portrait);
if (fragmentScientific== null) {
fragmentScientific = new ScientificFragment();
fm.beginTransaction()
.add(R.id.container_ui_portrait, fragmentScientific)
.commit();
}
}
}
我尝试在我的ScientificFragment类中使用onSaveInstanceState包来承载它
private TextView newRes;
@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
super.onSaveInstanceState(savedInstanceState);
savedInstanceState.putString("currentCal", newRes.getText().toString());
}
但我最后有两个单独的保存包,一个用于肖像,一个用于风景。
Android系统实际上会在方向更改时为您处理视图恢复,而不管您是否有不同的布局。关键是在两种布局中都要有相同的ID。使用不同的或根本不指定任何内容都将阻止它们的状态恢复。
请注意,此问题不是以下问题的重复: https://stackoverflow.com/questions/19006776/onactivityresult-not-working-with-fragments onActivityResult不处理片段 此外,之前也有人问过类似的问题,但这并没有提到方向的变化(目前尚未解决)。 如果不切换方向,则会调用片段中的onActivityResult方
我试过configChanges,但显然它没有改变我的布局。我试着在onConfigurationChanged的FrameLayout容器中填充肖像和景观布局并替换它们,但似乎也不起作用。 如何处理需要加载不同布局同时保持片段状态不变的情况?这有可能吗?对于这种事情,正确的做法是什么?
当我启动一个实现viewpager的活动时,viewpager创建了各种片段。我想为每个片段使用不同的布局,但问题是viewpager最大只显示两个布局(在1之后的所有剩余片段上显示第二个布局)。 下面是实现viewpager的SwipeActivity的代码: 这是片段的代码
我正在基于模板进行查看,但在某些区域我想输入片段。 模板:base。html 查看:列表。html 片段:片段/init.html 对于头部碎片,它可以正常工作。但在页脚中,但在页脚中,将显示模板的代码。 输出: 我希望你能帮助我。提前感谢。 使现代化 基础html 列表html init.html 输出: 我设法在页脚中包含代码片段,但我的目标是替换它。 解决方案:
我有一个活动与行动栏标签。每个选项卡都包含一个片段。现在,当我旋转我的设备时,我的相应片段中的bundle是空的。当我使用Android3.2后的设备时,这是小心的,但当设备是Android3.0时,这是发生的。我在这个问题上工作后感到头痛。我就这样勾选了各种链接,但无济于事。虽然我已经给出了足够的细节,但仍然会提供一些代码段作为在各种情况下用户要求的代码段。 在我的片段类中,我存储了这个值
我找不到如何从< code>Activity更改fragment的< code>textview。我有4个文件: frag_class.xml有textView,我想更改MainActivity.java的文本。FragmentClass扩展了片段,此片段显示在MainActivity中,FragmentClass具有: 在MainActivity中,我尝试了这个: 但可悲的是,这段代码给了我Nu