簡體   English   中英

方向變化時加載上一個片段

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM