0

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

    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;
4

2 回答 2

0

因此,您可以在不创建另一个的情况下将另一个“添加”Fragment到您的方法是使用函数。这可能是您将第一个添加到您的:Activityreplace()FragmentFragmentActivity

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();
    }
}

}

并且使用replaceinFragmentTransaction你可以MyFirstFragment用另一个替换:

MyNewFragment newFragment = new MyNewFragment();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.fragment_container, newFragment);
transaction.addToBackStack(null);
transaction.commit();

就这样。希望能帮助到你!:)

于 2013-02-04T22:37:20.007 回答
0

试试这个代码,它将替换您当前的片段,并在后面恢复您的旧片段。

NewFragment fragment = NewFragment.newInstance();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.addToBackStack("BACKSTACK");
ft.replace(R.id.home_list, fragment);
ft.commit(
于 2013-02-04T21:58:59.713 回答