替换片段的内容并删除旧内容 - Android应用程序

时间:2013-07-09 21:35:32

标签: java android android-fragments android-viewpager

我有两个片段,一个包含对象列表,另一个在第一个列表中选择了其他对象。当我从第一个标签添加项目时,必须使用新数据为第二个标签充电。现在我这样做:

FragmentTransaction ft = getFragmentManager().beginTransaction();
Fragment fav = new TabFavorites();
ft.replace(R.id.fav_layout, fav);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.commit();

问题是该选项卡的上一个实例未被删除并保留在内存中。我该怎么办?有什么想法吗?

另一个片段更加清晰,当我更新片段时,按钮升级重复,这是我使用的代码:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    case R.id.actualizar:{
        Log.d("MENU","ACTUALIZAR");
        FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
        Fragment cha = new TabChannels();
        ft.replace(R.id.list_layout, cha);
        ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
        ft.commit();  
    }

添加按钮以更新ActionBarSherlock:

@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
    inflater = getSherlockActivity().getSupportMenuInflater();
    inflater.inflate(R.menu.menu_channels, menu);
}

我删除了该行: ft.addToBackStack(null);

1 个答案:

答案 0 :(得分:0)

我终于找到了解决方法,我解决了这个问题:

TabFavorites tabFavorites = (TabFavorites) getSupportFragmentManager().findFragmentById(R.id.pager);
tabFavorites.reloadFavChannels();