我在将一个片段添加到活动时遇到了麻烦 .

当我以横向模式打开应用程序时,片段正常工作并显示列表旁边的信息 . 但是当我尝试以纵向模式显示信息时,应用程序会启动一个新活动,但不会显示该片段 .

使用片段打开的活动为空 . 应用程序甚至没有进入onCreateView函数,因为从未执行过Log.d(TAG,“onCreateView:ciao”) .

这是Java代码:

public class ActivityMain扩展AppCompatActivity {private static final String TAG =“ActivityMain”;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    Log.d(TAG, "onCreate: started");

    LeftFragment leftFragment = new LeftFragment();
    FragmentManager manager = getSupportFragmentManager();
    manager.beginTransaction().replace(R.id.mainLayout, leftFragment).commit();
}

}

public class LeftFragment extends Fragment {
private static final String TAG = "LeftFragment";

public LeftFragment() {
    // Required empty public constructor
}


@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {
    Log.d(TAG, "onCreateView: ciao");
    View view = inflater.inflate(R.layout.frag, container, false);

    ListView listView = (ListView) view.findViewById(R.id.list2);

    /* 100 Zufallszahlen in ArrayList "names" schreiben */
    Random rand = new Random();
    int n = rand.nextInt(200)+1;
    for(int i = 0; i <= 100; i++)
    {
        n = rand.nextInt(200)+1;
        DataContainer.names.add(Integer.toString(n));
    }

    /* Arrayadapter initialisieren, der Adapter holt sich seine Daten aus der ihm zugewiesenen Liste "names"
       die listview bekommt einen Adapter zugewiesen, der sie mit den Daten aus der Liste versorgt
     */
    ArrayAdapter adapter = new ArrayAdapter(getContext(), android.R.layout.simple_list_item_1, DataContainer.names);
    listView.setAdapter(adapter);
    /* Onclick Listener für die Listenelemente */
    listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
            String selectedData = DataContainer.names.get(position);
            DetailsFragment detailsFragment = new DetailsFragment();

            Bundle bundle = new Bundle();
            bundle.putString("selected_data", selectedData);

            detailsFragment.setArguments(bundle);

            if(getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
                Intent intent;
                intent = new Intent(getActivity(), Activity_second.class);
                Log.w(TAG, "onItemClick:  " + intent);
                intent.putExtra("selected_data", selectedData);
                startActivity(intent);
            }
            else
            {
                FragmentManager manager = getFragmentManager();
                manager.beginTransaction().replace(R.id.detailLayout, detailsFragment).commit();
            }
        }
    });
    return view;
}


public static class DataContainer{
    static ArrayList<String> names = new ArrayList<>();
    //static ArrayList<String> details = new ArrayList<>();
}

}

public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View view = inflater.inflate(R.layout.fragment_details, container, false);
    TextView TextDetailHeadline = (TextView)view.findViewById(R.id.TextDetailHeadline);
    TextView TextDetails = (TextView)view.findViewById(R.id.TextDetails);
    Bundle bundle = getArguments();

    if(bundle != null) {
       if (bundle.getString("selected_data") != null){
            TextDetailHeadline.setText(bundle.getString("selected_data"));
            TextDetails.setText(bundle.getString("selected_data"));
       }
    }
    return view;
}

}

public class Activity_second extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_details);

    FragmentManager manager = getSupportFragmentManager();
    DetailsFragment detailsFragment = new DetailsFragment();
    detailsFragment.setArguments(getIntent().getExtras());
    manager.beginTransaction().replace(R.id.detailLayout, detailsFragment).commit();
}

}

我自己发现错误:我的Activity_Second链接到错误的XML文件:

setContentView(R.layout.activity_details);

..Yikes