用另一个没有新活动的片段替换片段

时间:2013-02-04 21:33:30

标签: android android-fragments

这是我的片段,我正在尝试从片段中更改片段。我知道我可以用新片段创建一个新活动,然后创建和意图并走这条路。但我有一个活动,其中有一些内容,我真的只想在一个地方更新。任何人都可以告诉我如何在仍然使用我最初创建的活动的同时将片段更改为另一个片段吗?

    view = inflater.inflate(R.layout.inst_fragment, container, false);
    furnTextView = (TextView) view.findViewById(R.id.furn_textview);
    archTextView = (TextView) view.findViewById(R.id.arch_textview);

    furnTextView.setOnTouchListener(new OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if(MotionEvent.ACTION_UP == event.getAction()){
                openCatalog("furn");
            }
            return false;
        }
    });
    archTextView.setOnTouchListener(new OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            if(MotionEvent.ACTION_UP == event.getAction()){
                openCatalog("arch");
            }
            return false;
        }
    });

    return view;

2 个答案:

答案 0 :(得分:0)

尝试使用此代码,它将替换您当前的片段,然后将恢复旧片段。

NewFragment fragment = NewFragment.newInstance();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.addToBackStack("BACKSTACK");
ft.replace(R.id.home_list, fragment);
ft.commit(

答案 1 :(得分:0)

所以你可以这样做"添加"另一个FragmentActivity而未创建一个replace()正在使用Fragment功能。这可能是您在FragmentActivity中添加第一个public class MainActivity extends FragmentActivity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.news_articles); if (findViewById(R.id.fragment_container) != null) { if (savedInstanceState != null) { return; } MyFirstFragment firstFragment = new HeadlinesFragment(); firstFragment.setArguments(getIntent().getExtras()); // Add the fragment to the 'fragment_container' FrameLayout getSupportFragmentManager().beginTransaction() .add(R.id.fragment_container, firstFragment).commit(); } } 的方式:

replace

}

FragmentTransaction中使用MyFirstFragment,您可以将MyNewFragment newFragment = new MyNewFragment(); FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); transaction.replace(R.id.fragment_container, newFragment); transaction.addToBackStack(null); transaction.commit(); 替换为另一个:{/ p>

{{1}}

这就是全部。希望能帮助到你! :)