0

我有两个片段,一个带有对象列表,另一个是在第一个列表中选择的对象。当我从第一个选项卡添加项目时,必须用新数据为第二个选项卡充电。现在我这样做:

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

4

1 回答 1

0

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

TabFavorites tabFavorites = (TabFavorites) getSupportFragmentManager().findFragmentById(R.id.pager);
tabFavorites.reloadFavChannels();
于 2013-07-14T11:40:20.450 回答