我正在使用Fragment事务向活动添加两个片段.但是,当应用程序启动时,只会显示第一个片段.这是代码:
主要活动
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
FragOne firstButton = new FragOne();
FragmentTwo secButton = new FragmentTwo();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.add(R.id.frag_container, firstButton);
transaction.add(R.id.frag_container, secButton);
transaction.commit();
}
Run Code Online (Sandbox Code Playgroud)
activity_main.xml中
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:id="@+id/frag_container"
android:layout_height="fill_parent"
android:orientation="horizontal">
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
frag_one.xml和frag_two.xml类似
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Button One" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
所以我不确定会出现什么问题......我看到很多例子都添加了一个片段.
我有一个带有edittexts的表单和一个用于调用相机的按钮(返回一个放入imageview的位图)...从纵向模式我输入所有的edittext字段,然后单击相机按钮将我转发到相机 - 在相机中我拍照后我将返回到活动1(保持纵向 - 并且所有editext字段都恢复onRestoreInstanceState()) - 并且活动1的最后一个回调方法是onResume()(什么是好的) - 但是问题当我从这个肖像到横向模式进行方向更改时 - 回调方法如下

所以最后的回调方向改变是onPause().我不懂为什么?问题是onSaveInstanceState在onPause之前调用 - 所以当我回到纵向模式时,所有内容都将为空(editexts,imageview ..) - 这种奇怪的行为会在每次方向更改时继续(最后调用onPause()).
我确定这个问题必须与拍摄图像(startInentforResult ....)有关,因为所有(editext字段)在拍摄图像之前在方向更改上工作正常...有时我也可以拍摄图像并且它可以正常工作很好,但在大多数情况下不...
所以我的问题是什么是"驱动"我的活动直到onPause()方法而不是onResume()?
谢谢,我真的很感激,如果有人知道解决方案,因为我已经困难了几天,无法找到解决方案.
该项目有很多类,但这是活动代码(需要注意的是,只有当我从相机应用程序中获取图像时才会出现问题,之后活动生命周期变得疯狂 - 此活动也是通过'startIntentforResult从主活动中调用的()'.我不使用'android:configChanges ="orientation | keyboardHidden"'来停止recreatioin):
public class NewCounterActivity extends Activity {
Button btnCreate;
Button btnCancel;
Button btnTakeImg;
ImageView counterImgView;
CheckBox existsDamage;
EditText inputNameFirst;
EditText inputNameLast;
EditText inputAdresse;
EditText inputCounterID;
EditText inputCounterValue;
EditText inputDescription;
TextView registerErrorMsg;
DatabaseHandler db;
//Data to be submitted
String nameFirst;
String nameLast;
String adresse;
String …Run Code Online (Sandbox Code Playgroud)