[英]Previous Fragment is Loaded on Orientation change
我在FragmentTwo()中有一個ListView。 單擊列表項后,我將與單擊的項一起指向FragmentFour()。 當我在方向改變時處於FragmentFour()中時,我將直接回到FragmentTwo()。 這是為什么? 我還必須實現什么其他方法?
片段二
public void onBookSelected(String item) {
Fragment fragment = new FragmentFour();
Bundle args = new Bundle();
args.putString("book_value",item);
fragment.setArguments(args);
FragmentManager fragmentManager = getFragmentManager();
fragmentManager.beginTransaction()
.replace(R.id.container, fragment)
.commit();
}
片段四
public static FragmentFour newInstance(Context context) {
FragmentFour f = new FragmentFour();
return f;
}
@Override
public void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setRetainInstance(true);
}
@Override
public View onCreateView(final LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
this.inflater = inflater;
Toast.makeText(getActivity(),"onCreateView()",Toast.LENGTH_LONG);
final View rootView = inflater.inflate(R.layout.book_listview_layout, container, false);
book = getArguments().getString("book_value");
setActionBarTitle(book);
chapter_verse = new ArrayList<String>();
content = new ArrayList<String>();
getChapterVerseList();
getContentList();
first_load = 0;
popUpShown = false;
addItemsToSpinner1(rootView);
addItemsToSpinner2(rootView);
addListenerOnSpinnerItemSelection();
adapter = new BookViewCustomList(this.getActivity(),
chapter_verse,imageId,content);
lv = (ListView) rootView.findViewById(R.id.myListView);
lv.setAdapter(adapter);
lv.setOnItemClickListener(new OnItemClickListener(){
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
TextView content = (TextView) view.findViewById(R.id.textViewContent);
String chapter_verse_selected = chapter_verse.get(position);
if(popUpShown == false) {
showPopUp(inflater, content.getText().toString(), chapter_verse_selected, book);
spinner1.setEnabled(false);
spinner2.setEnabled(false);
lv.setEnabled(false);
}
}
});
return rootView;
}
檢查您的Activity中首先創建FragmentTwo
的代碼。 也許您可以在onCreate()
再次執行此代碼,用FragmentTwo
替換當前片段(如果有)。
您正在調用fragment4的構造函數,而不是調用newinstance。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.