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
}
ฉันมีความต้องการที่จะแสดงมุมมองรายการสองรายการควบคู่กันเมนูทางซ้ายและเนื้อหาทางด้านขวา โดยค่าเริ่มต้นเมนูแรกจะถูกเลือกและเนื้อหาจะแสดงทางด้านขวา Fragment ที่แสดงเนื้อหามีดังต่อไปนี้:
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 และ onCreateView จะเรียกว่าเป็นครั้งที่สอง มีตัวอย่างมากมายที่ใช้ชิ้นส่วน เนื่องจากฉันเป็นผู้เริ่มต้นในเรื่องนี้ฉันจึงไม่สามารถเชื่อมโยงตัวอย่างกับปัญหาของฉันได้ ฉันต้องการวิธีพิสูจน์คนโง่เพื่อจัดการกับการเปลี่ยนแปลงการวางแนว ฉันไม่ได้ประกาศandroid:configChanges
ในไฟล์รายการ ฉันต้องการให้กิจกรรมทำลายและสร้างใหม่เพื่อที่ฉันจะได้ใช้เลย์เอาต์ที่แตกต่างกันในโหมดแนวนอน