使用onMenuItemCLickListener从活动调用多个片段的方法

问题描述:

祝你一切安好。使用onMenuItemCLickListener从活动调用多个片段的方法

首先,对不起,如果我拼命地拼错,因为我不知道如何写英文,至少正确。但是,对于你可以给我的所有答案,这不是问题,因为我可以很好地阅读英语(是的,我是一个lazzy a.s.s.以便学习它)。

二,即时学习android现在已经开发了一个像一个月的应用程序。问题是我的应用程序在Activity上有一个Actionbar菜单,它包含3个由VIEWPAGER添加的片段,所以我无法将它们投入到活动中以运行它们的方法....这是一个大问题!每个片段都有几个EditText,我想要的是使用我的ACTIVITY ACTIONBAR MENU ITEM CLICK来存储来自EdtiText的所有数据并将其存储在SQLite数据库中;每个片段一张表。

我已经做了所有事情,唯一需要知道如何在按下某个项目时从三个片段中调用方法的方法就是我的活动菜单项onOptionClickListener。 (最重要的是这是我的活动的菜单,而不是片段,而且我不能将片段瞬间分配给我的活动,因为我使用viewpager来创建它们)。

对不起,我的mispell的,并抱歉没有发布我的代码,但是,真的很大,所以而不是明确我的问题我会混淆任何人,所以它更好,你可以帮助我满足我的需要大代码,所以感谢您的理解和帮助。

+0

添加你到目前为止尝试过的代码,你遇到了什么问题? –

有一个这样的课。 检查观察者类。其实并没有太复杂。你可以轻松地重做这个行为。

*只是做一个接口与方法

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