0

listFragment Aアイテムを選択した後、フラグメントB1をフラグメントB2に置き換えたい。

@Override
public void onListItemClick(ListView l, View v, int position, long id) {

    Integer Position = position;
    WebViewerFragment fragment = (WebViewerFragment) getFragmentManager()
            .findFragmentById(R.id.detailFragment);
    if (Position.equals(0)) {
        FragmentManager fm = getFragmentManager();
        WebViewerFragment newFragment = new WebViewerFragment();
        FragmentTransaction ft = fm.beginTransaction();
        ft.replace(R.id.detailFragment, newFragment);
        ft.addToBackStack("android");
        ft.commit();
    } else if (Position.equals(1)) {
        FragmentManager fms = getFragmentManager();
        WebViewerFragment_II newFragments = new WebViewerFragment_II();
        FragmentTransaction fts = fms.beginTransaction();
        fts.replace(R.id.detailFragment, newFragments);
        fts.addToBackStack("google");

        fts.commit();
    } 
}

一度だけ置き換えられ、項目1(位置0)を再度選択すると、アプリケーションがクラッシュします。

4

1 に答える 1

0

replace(int, Fragment)のメソッドを呼び出す場合FragmentTransaction、intは、新しいコンテナを入れたいコンテナのIDであり、前のコンテナのIDである必要がありますFragment。通常、これはFrameLayoutです。設定されているをXMLで
置き換えることはできません。Fragment

于 2012-12-02T13:02:50.007 に答える