2013-07-09 108 views
0

我有兩個片段,一個是對象列表,另一個是第一個列表中選定的其他對象。當我從第一個選項卡添加項目時,必須使用新數據爲第二個選項卡充值。現在我這樣做:替換片段的內容並刪除舊內容 - Android應用

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

回答

0

我終於找到了一個解決辦法,我解決了這樣的問題:

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