添加和替换片段,在android中不能正常工作
我尝试了android碎片,并且我无法理解这一点;请帮助添加和替换片段,在android中不能正常工作
public class MainActivity extends FragmentActivity {
private static final String TAG = "MyActivity";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
if (findViewById(R.id.fragment_container) !=null) {
if(savedInstanceState!=null){
return ;
}
ArticleFragment first_fragment = new ArticleFragment();
HeadlineFragment second_fragment = new HeadlineFragment();
first_fragment.setArguments(getIntent().getExtras());
second_fragment.setArguments(getIntent().getExtras());
FragmentTransaction manager=getSupportFragmentManager().beginTransaction();
manager.add(R.id.fragment_container, first_fragment,"first");
manager.add(R.id.yo, second_fragment,"second");
manager.commit();
}
}
现在我想删除second_fragment在一个按钮按下并替换为另一个。所以我试过这个
if(getSupportFragmentManager().findFragmentByTag("second")!=null) {
Log.d(TAG,"found");
abc newFragment = new abc();
Bundle args = new Bundle();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
transaction.remove(getSupportFragmentManager().findFragmentByTag("second"));
transaction.add(R.id.fragment_container,newFragment,"third");
transaction.addToBackStack(null);
transaction.commit();
}
但是当我再次按下该按钮时,条件通过。 这里有什么问题?
请勿删除和添加。简单地用新的替换第二个片段。你会完成的。
你是指这个? (),getId(),newFragment,“third”); – DarkCoderRises 2015-04-04 12:19:48
transaction.replace(R.id.yo,newFragment);检查片段上的null not条件。 – 2015-04-04 12:24:33
我仍然有同样的问题。 – DarkCoderRises 2015-04-04 12:33:03
你有问题吗?在第一种方法还是第二种? – 2015-04-04 12:55:41