2015-05-19 70 views
0

祝你一切安好。使用onMenuItemCLickListener從活動調用多個片段的方法

首先,對不起,如果我拼命地拼錯,因爲我不知道如何寫英文,至少正確。但是,對於你可以給我的所有答案,這不是問題,因爲我可以很好地閱讀英語(是的,我是一個lazzy a.s.s.以便學習它)。

二,即時學習android現在已經開發了一個像一個月的應用程序。問題是我的應用程序在Activity上有一個Actionbar菜單,它包含3個由VIEWPAGER添加的片段,所以我無法將它們投入到活動中以運行它們的方法....這是一個大問題!每個片段都有幾個EditText,我想要的是使用我的ACTIVITY ACTIONBAR MENU ITEM CLICK來存儲來自EdtiText的所有數據並將其存儲在SQLite數據庫中;每個片段一張表。

我已經做了所有事情,唯一需要知道如何在按下某個項目時從三個片段中調用方法的方法就是我的活動菜單項onOptionClickListener。 (最重要的是這是我的活動的菜單,而不是片段,而且我不能將片段瞬間分配給我的活動,因爲我使用viewpager來創建它們)。

對不起,我的mispell的,並抱歉沒有發佈我的代碼,但是,真的很大,所以而不是明確我的問題我會混淆任何人,所以它更好,你可以幫助我滿足我的需要大代碼,所以感謝您的理解和幫助。

+0

添加你到目前爲止嘗試過的代碼,你遇到了什麼問題? –

回答

1

有一個這樣的課。 檢查觀察者類。其實並沒有太複雜。你可以輕鬆地重做這個行爲。

*只是做一個接口與方法

public interface MyObserverInterface { 
    //the code that will run when a save button is clicked in your menu 
    //fragment 
    public void starAction(); 
} 

*讓你的片段implament這個接口。

*創建至極第二類,你會得到你的片段參考

public class MyObserver { 

List<Fragment> listFragments; 
//make sure your fragments implement the MyObserverInterface interface 
public MyObserver(Fragment fragment1, Fragment fragment2) { 
    listFragments = new ArrayList<Fragment>(); 
    listFragments.add(fragment1); 
    listFragments.add(fragment2); 
} 

public void startActionInAllFragments(){ 
    for(int n=0;n<listFragments.size();n++){ 
     listFragments.get(n).starAction(); 
    } 
} 
} 

現在只是在你的片段創建MyObserver類的實例,並調用其方法startActionInAllFragments()

讓我知道它是否爲你工作。

+0

謝謝海倫娜。我現在要試一試,但我有疑問....我必須在哪裏聲明界面?對不起,我想問一些太基本的東西,但是我是第一個使用接口的方法,所以我需要學習更基本的東西。 –

+0

謝謝海倫娜。我嘗試了它,但沒有用,因爲即使我實現了所有片段上的接口,但仍然不承認「.startAction();」方法。 –

+0

你需要發佈你的代碼,所以我可以告訴你在哪裏以及如何最實現這個類。 此外,您可以使用Observable檢查觀察者類 http://developer.android.com/reference/java/util/Observer.html – LearningCharlito