2013-11-15 30 views
1

我有一個ActionbarSherlock活動和3個操作欄選項卡。第二個選項卡有兩個片段(A和B)。具有列表日曆的碎片「A」和具有任務添加功能的碎片「B」。當我單擊碎片「A」列表日曆項目時,它將會轉到碎片「B」。然後我在片段「B」中添加一些任務,然後按返回按鈕重定向片段「A」罰款。我的問題是當我從片段「B」回到片段「A」調用哪個方法,並且我更新任務細節時回片段「A」 .Thanks ...片段後退按鈕按下哪種方法被調用或如何調用用戶定義的功能

ActionbarActivityclass:

當我選擇第二個動作條選項卡具有兩個片段ListCalendarFragment和TaskFragment.First我同時添加fragments.Then我躲TaskFragment並僅顯示ListCalendarFragmnet。

 TaskFragment()fragmentTask = new TaskFragment(); 
     ListCalendarFragment fragmentListCalendar = new ListCalendarFragment(); 
     fragmentrans = getSupportFragmentManager().beginTransaction(); 
     fragmentrans.add(R.id.content_frame, fragmentListCalendar); 
     fragmentrans.add(R.id.content_frame, fragmentTask); 
     fragmentrans.hide(fragmentTask); 
     fragmentrans.commit(); 

當我點擊列表中的日曆項,它會調用,可以用來顯示工作片段以及隱藏日曆片段一個聽衆。

SherlockFragmentActivity activity = getSherlockActivity(); 
       if (activity instanceof ListItemClickListener) { 

        ((ListItemClickListener)activity).onListClick(); 
       } 

ListItemClickListener:接口

public interface ListItemClickListener { 
public void onListClick(); 
} 

ActionbarActivityclass實現ListItemClickListener。 此功能顯示任務日曆並隱藏列表日曆。

@Override 
public void onListClick() { 

    fragmanager = getSupportFragmentManager(); 
    fragmentrans = fragmanager.beginTransaction(); 
    fragmentrans.hide(fragmentListCalendar); 
    fragmentrans.show(fragmentTask); 
    fragmentrans.addToBackStack(null); 
    fragmentrans.commit(); 

} 

我的問題是,當我回到日曆通過單擊當時的後退按鈕它的生命週期方法被調用或如何調用用戶定義的方法,在日曆Fragment.Because我需要刷新列表日曆適配器在ListCalendar Fragment.Thanks

回答

0

我希望我正確理解你的問題。以下是我解決了類似的問題:

做一個接口,用於片段B是這樣的:

public interface FragmentBListener { 
    public void onBackButtonPressed(); 
} 

然後,實例化它的片段B(最多以上onCreateView你實例小部件等):

FragmentBListener mCallback; 

然後,在你的片段B,只要你想回去,或取消或什麼的,你叫:

mCallback.onBackButtonPressed(); 

接口,當然,在你的主要活動(或任何活動,您選擇)來實現,所以應該有這樣一個有方法:

@Override 
public void onBackButtonPressed() { 
    Log.i(TAG, "onBackButtonPressed()");  

    // Do something, e.g. reload Fragment A 
} 

希望這有助於。

+0

嘿謝謝你的回答,但它是如何工作的。當我打電話給後退按鈕時,界面自動調用。 – Satheesh

相關問題