从片段内部调用活动方法

3

我将尝试从容器活动向片段传递一个值。

我尝试通过以下方式实现:

我在活动中有这个方法。

public int showMode(){return Mode;} 

同时,在Fragment中有这个方法:

public int getModeFromActivity(){
    int i;
    i = getActivity().showMode;
        return i;

但是在片段方法中,它给了我一个错误:showMode无法解析或不是字段

有人可以帮我修复这个问题吗?谢谢!

1个回答

2
您的方法不正确。
以下是在Android中完成此任务的两种方法:
1)在Fragment中定义一个整数模式。将Fragment的构造函数更改为
FragmentName(int mode){
    this.mode = mode;
}

你可以在Activity中读取mode变量,并将其传递给Fragment以创建它。

2.) 另一种方法是使用接口,这样你的Fragment就知道它的父Activity实现了你的方法!所以你必须像这样改变Fragment

InterfaceName mInterface;
FragmentName(MyInterfaceName interface){
    mInterface = interface;
}

public int getModeFromActivity(){
int i;
i = mInterface.showMode();
    return i;
}

我正在像这样在选项卡主机中调用片段 TabsFragmentActivity.addTab(this, this.mTabHost, this.mTabHost.newTabSpec("Tab6").setIndicator("商店"), (tabInfo = new TabInfo("Tab6", TabFragment6.class, args)));
  • 我应该如何在这里调用构造函数?
- tyb
对不起,我遇到了一些困难。我应该把这段代码放在哪里呢?InterfaceName mInterface; FragmentName(MyInterfaceName interface){ mInterface = interface; } - tyb
我不需要在其他地方声明接口吗?比如在一个单独的Java文件中?谢谢,抱歉给您带来麻烦。 - tyb
这是一个简单的Java回调。他们在这里解释得更好... http://developer.android.com/guide/topics/fundamentals/fragments.html - Maurycy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接