这是我的片段,我正在尝试从片段中更改片段。我知道我可以用新片段创建一个新活动,然后创建和意图并走这条路。但我有一个活动,其中有一些内容,我真的只想在一个地方更新。任何人都可以告诉我如何在仍然使用我最初创建的活动的同时将片段更改为另一个片段吗?
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;
答案 0 :(得分:0)
尝试使用此代码,它将替换您当前的片段,然后将恢复旧片段。
NewFragment fragment = NewFragment.newInstance();
FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
ft.addToBackStack("BACKSTACK");
ft.replace(R.id.home_list, fragment);
ft.commit(
答案 1 :(得分:0)
所以你可以这样做"添加"另一个Fragment
到Activity
而未创建一个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}}
这就是全部。希望能帮助到你! :)