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 muss zwei Listenansichten nebeneinander anzeigen, das Menü links und den Inhalt rechts. Standardmäßig ist das erste Menü ausgewählt und sein Inhalt wird auf der rechten Seite angezeigt. Das Fragment, das den Inhalt anzeigt, lautet 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 );
}
}
OnActivityCreated und onCreateView werden zweimal aufgerufen . Es gibt viele Beispiele, die Fragmente verwenden. Da ich Anfänger in diesem Fach bin, kann ich das Beispiel nicht mit meinem Problem in Verbindung bringen. Ich brauche einen narrensicheren Weg, um mit Orientierungsänderungen umzugehen. Ich habe NICHT android:configChanges
in Manifest-Datei deklariert . Ich muss die Aktivität zerstören und neu erstellen, damit ich im Querformat ein anderes Layout verwenden kann.