2016-08-11 12 views
0

Android開発では新しいです。私は、ボタンをクリックするとメッセージを送信するリスナーを自分のフラグメントに追加したいと思います。自分のメイン・フラグメント・クラスでこれを聞いて、自分の活動がこのメイン・フラグメントにアクセスしてメッセージを処理できるようにする必要があります。私はまた、私のメインの断片のリスナーを削除する必要があります。だから私はこれをどのように実装するのですか?私はMyFragmentアンドロイドはリスナーを断片化して実装しています

sendMessage(message)を持って

EDITボタンのクリックを持ってMyFragment方法です。ここでリスナーを実装する必要がありますか?ここでは、このsendMessageイベントを処理し、MAinActivity

にフローを送信するためにどのようにMainFragment

は、あなたの活動や、インターフェイスをすることができますフラグメントとの間で通信するためのMyFragment(childfragment) -> MAinFragment -> MainActivity

+0

ようこそonClickListenerを削除することができます。あなたはまだ何をしようとしていますか? – pRaNaY

答えて

1

のようなものです。基本的な考え方は、指定されたフラグメントの内部にインターフェイスを定義し、そのインターフェイスにそのアクティビティを実装させることです。

インターフェイスを実装したら、オーバーライドするメソッドで任意の操作を実行できます。

あなたは、これが役立ちますhttp://simpledeveloper.com/how-to-communicate-between-fragments-and-activities/

希望を参照することができ、いくつかのコードのレベルの詳細のお手伝いをするために!

あなたのフラグメントのクラスで
+0

私の編集コードをご覧ください – Mariana

1

は、MyFragment.javaはインタフェース

public interface MyFragmentInterfacer{ 
    void onButtonClick(String msg); 
} 
MyFragmentInterfacer fragmentInterfacer; 

//Override this function as below to set fragmentInterfacer 
@Override 
public void onAttach(Context context){ 
    fragmentInterfacer = (MyFragmentInterfacer)context; 
} 

、あなたがこのメッセージを取得したいあなたの主な活動に続いて

myButton.setOnClickListener(new View.OnClickListener(){ 
    @Override 
    public void onClick(View v){ 
     if(fragmentInterfacer != null){ 
      fragmentInterfacer.onButtonClick("This is my Message"); 
     } 
    } 
}); 

この関数を呼び出したいを作成すると言いますこのインターフェイスを実装する

public class MainActivity implements MyFragment.MyFragmentInterfacer{ 
. 
. 
} 

MainAでインターフェイス関数を実装するctivity

@Override 
public void onButtonClick(String msg){ 
    //Do something with this message 
} 

は、このリスナーを削除するには、このリスナーを無効にしたい場合は、あなたのフラグメントのクラスに

fragmentInterfacer = null; 

を使用します。

それとも、stackoverflowの上のボタンの上にボタン

myButton.setOnClickListener(null); 

または無効クリックから

myButton.setClickable(false); 
+0

私の編集コードをご覧ください – Mariana

関連する問題