Fragment A
とFragment B
の2つのフラグメントがあり、どちらのフラグメントも通信用にinterfaces
、両方のインタフェースを実装しています。私は両方のFragments
のサンプルコードを示しているFragment A
フラグメント内の内部クラスとしてのDialogFragment(サポートライブラリフラグメントv4)
public class FragmentA extends Fragment
{
public interface myInterface
{
doSomethingFromFragmentA();
}
private myInterface listener;
@Override OnAttach(Context activity)
{
listener=(myInterface) activity;
}
}
ため
サンプルコードFragment B
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
}
}
のためのサンプルコード、あなたの人々は私がActivityMain
でインタフェースを実装していると仮定しなければなりません。
あなたはがの別のタイプのFragmentB
にあることに気付きました。第一
:DialogFragment
のOKボタンでは、私はActivityMain.
上FragmentB
インターフェイスメソッドを呼び出すようにしようとしていた私は2つの問題を抱えているDialogFragment
が内部FragmentB
ので、FragmentB
は親ではなく、ActivityMain
です。この種のInner DialogFragment
からインタフェース実装されたメソッドを呼び出しますか?どのように概念的にホストとの通信でActivity
(この場合は親)
第2の:それは私の中には断片的な問題が残っている静的でなければならないというエラーを与えていますが、このDialogFragment内のリスナー変数を使用してリスナー変数を静的にするそれはまだ
フラグメントnullがどのれるコールバックを持っている
と私の最初の問題の答え? –
デフォルト以外のコンストラクタをフラグメントで使用することは推奨されません –