Psy*_*her 3 android android-layout android-fragments
我在活动中添加了一个片段,使用下面的代码:
FragmentManager fragmentManager=getFragmentManager();
FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction();
PreferenceFragment preferencefragment=new Preferencefragment();
fragmentTransaction.add(R.id.maincontainer, preferencefragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
Run Code Online (Sandbox Code Playgroud)
布局文件:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<DigitalClock
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/digitalClock"
android:layout_gravity="center"
android:textColor="@color/appcolor"
android:layout_centerHorizontal="true"
style="@android:style/TextAppearance.DeviceDefault.Large"
android:textSize="45dp"/>
<TimePicker
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/timePickersms" />
<FrameLayout
android:id="@+id/maincontainer"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
Run Code Online (Sandbox Code Playgroud)
活动有数字时钟和时间戳,下面显示片段,现在当我点击后退按钮时,片段消失,之后显示上一个活动.如何一次显示以前的活动?
我的下一个问题是如何在屏幕上按下按钮时刷新片段?
Ank*_*pli 10
addToBackStack(null) 将片段添加到后面的堆栈,当按下后退时会自动弹出.
所以你可以通过两种方法解决这个问题(适合你):
去掉 addToBackStack(null)
要么
将以下代码添加到您的活动中:
@Override
public void onBackPressed(){
finish();
}
Run Code Online (Sandbox Code Playgroud)
编辑:
就片段的刷新而言,你有两个选择:第一个是简单地用旧片段替换旧片段.第二个是你可以维护片段的对象,并具有用于更新片段内数据的setter/getter函数.
| 归档时间: |
|
| 查看次数: |
2602 次 |
| 最近记录: |