Narrensicherer Umgang mit Fragment bei Orientierungsänderung

public class MainActivity extends Activity implements MainMenuFragment.OnMainMenuItemSelectedListener {

 @Override
 public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    FragmentManager fragmentManager = getFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager
            .beginTransaction();

    //add menu fragment
    MainMenuFragment myFragment = new MainMenuFragment();
    fragmentTransaction.add(R.id.menu_fragment, myFragment);

    //add content
    DetailPart1 content1= new DetailPart1 ();
    fragmentTransaction.add(R.id.content_fragment, content1);
    fragmentTransaction.commit();

}
public void onMainMenuSelected(String tag) {
  //next menu is selected replace existing fragment
}

Ich habe ein Bedürfnis für die Anzeige von zwei Listen-Ansichten Seite an Seite ,im Menü auf der linken Seite und dessen Inhalt auf der rechten Seite,standardmäßig das erste Menü wird ausgewählt und sein Inhalt wird angezeigt, auf der rechten Seite.Das Fragment, das zeigt Inhalte ist wie folgt

public class DetailPart1 extends Fragment {
  ArrayList<HashMap<String, String>> myList = new ArrayList<HashMap<String, String>>();
  ListAdapter adap;
  ListView listview;

  @Override
  public void onActivityCreated(Bundle savedInstanceState) {
      super.onActivityCreated(savedInstanceState);

       if(savedInstanceState!=null){
        myList = (ArrayList)savedInstanceState.getSerializable("MYLIST_obj");
        adap = new LoadImageFromArrayListAdapter(getActivity(),myList );
        listview.setAdapter(adap);
       }else{
        //get list and load in list view
        getlistTask = new GetALLListTasks().execute();
    }


     @Override
   public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {
    View v = inflater.inflate(R.layout.skyview_fragment, container,false);
           return v;
        }


     @Override
      public void onSaveInstanceState(Bundle outState) {
         super.onSaveInstanceState(outState);
          outState.putSerializable("MYLIST_obj", myList );
        }
    }

Den onActivityCreated und onCreateView heißt zweimal gibt es viele Beispiele gibt, die Verwendung von Fragmenten ,also ich bin Anfänger in diesem segment bin ich nicht beziehen, das Beispiel mit meinem problem .Ich brauche Narr Beweis Weg, um zu behandeln, Orientierung ändern, in einem besseren Weg.Ich habe NICHT deklariert android:configChanges in der manifest-Datei ,ich brauche die Aktivität zu zerstören und neu zu erstellen, so dass ich verwenden können, ein anderes layout im landscape-Modus.Bitte helfen Sie mit, einen workaround

Kommentar zu dem Problem
In der Regel Fragmente, die Orientierung änderungen werden berücksichtigt, ohne Sie zu brauchen, etwas zu tun. Also, was ist das problem, das Sie erleben, wenn Sie die Ausrichtung ändern? Kommentarautor: Alexander Kulyakhtin
Alex, ich muss die Klasse DetailPart1 fragment Bildschirm-layout mit listView in hochformat und den layout-Grid-View im landscape-Modus.für diese brauche ich neu, das fragment jeder Zeit, aber ich don ' T wollen, laden Sie die gleichen Datensätze erneut ,so dass ich speichern Sie Sie auf onSaveInstanceState .Aber der obige code erstellt DetailPart1 zweimal ,ich muss wissen, der code fehlt, dass macht es funktionieren wie gewünscht Kommentarautor: user1811741

InformationsquelleAutor der Frage user1811741 | 2012-11-09

Schreibe einen Kommentar