首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DialogFragment作为片段内的内部类(支持库片段v4)

DialogFragment作为片段内的内部类(支持库片段v4)
EN

Stack Overflow用户
提问于 2016-12-18 17:58:17
回答 1查看 360关注 0票数 1

我有两个片段Fragment AFragment B,两个片段都定义了用于通信的interfacesActivityMain实现了这两个接口。

Fragment A样例代码

代码语言:javascript
复制
public class FragmentA extends Fragment
{
    public interface myInterface
      {
         doSomethingFromFragmentA();
      }
   private myInterface listener;
   @Override OnAttach(Context activity)
     {
        listener=(myInterface) activity;
     }
}

Fragment B样例代码

代码语言:javascript
复制
    public class FragmentA extends Fragment
    {
        public interface myInterfaceforB
          {
             doSomethingFromFragmentB();
          }
       private myInterfaceforB listener;
       @Override OnAttach(Context activity)
         {
            listener=(myInterfaceforB) activity;
         }

      private DialogFragment dialog=new DialogFragment()
        {
          @Override
             public Dialog onCreateDialog(Bundle bundle)
                {
                   //in this dialog creating a AlertDialog and calling doSomethingFromFragmentB() from dialog ok button
                }

        }

我已经展示了两个Fragments的示例代码,您应该假设我已经用ActivityMain实现了接口。

您已经注意到我在FragmentB中有一个FragmentB,这是另一种类型的fragment。在DialogFragment的OK按钮中,我试图在ActivityMain.上调用FragmentB接口方法,我有两个问题:

第一:DialogFragmentFragmentB内部,所以FragmentB是它的父级,而不是ActivityMain。从这种内部DialogFragment调用接口的实现方法?在与主机Activity的通信中,这是如何在概念上工作的(本例中为大父级)

第二:由于某些片段保留问题,内部片段应该是静态的,这也给了我错误,但是当我使它是静态的时,我还必须使侦听器变量静态,因为我在这个DialogFragment中使用侦听器变量。但它还是给了我以下的错误

片段空必须是公共静态类,才能从实例状态正确地重新创建。

EN

回答 1

Stack Overflow用户

发布于 2016-12-18 19:03:49

实现您自己的DialogFrament,并要求您的实现构造函数有一个回调,该回调将在您的片段中触发。

代码语言:javascript
复制
public class MyDialog extends DialogFragment{

MyInterface mi;

    MyDialog(MyInterface mi){
    this.mi = mi;
    }

    // on some action mi.yourCallBack();
    }

因此,当您初始化您的对话框片段时,向它传递一个接口,您将收到对您的片段的操作的回调。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41211250

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档