Androidはカスタムクラスでカスタマイズモニター方式を実現します。


モニターはAndroid開発の中で最もよく使われているものの一つと言えます。モニターを通して,対象の様々な変化イベントをモニターし,必要な処理を行うことができ,非常に有用であり,また使いやすい。実は、モニターはC++の中のコールバック関数に相当しています。条件を満たしたら、コールバックして実行します。
多くの場合、私達はカスタムコントロールクラスにおいても、いくつかの属性変化を実現するモニターが必要で、元のコントロールモニターと同じ機能を実現します。以下のいくつかのステップに分けて、カスタムモニターの実装と使用を説明します。
一、カスタムモニターの実現:
1、ロード完了モニターインターフェースを定義する

//      
public static interface LoadingListener {
 public void onFinishedLoading(boolean success);
}
MyClassカスタムクラスの中で一つのロードが完了した傍受インターフェースLoadingListenerを定義し、インターフェースの中で一つの方法onFinished Loadingがこのインターフェースを使用するクラスに具体的なプロセスを実現すると宣言し、successはロードが成功したかどうかを示しています。
2、インターフェースを宣言し、モニターを設置する方法を実現する。
声明LoadingListenerインターフェース
privte LoadingListener m LoadingListener;
LoadingListenerの設定方法を提供します。

public void setLoadingListener(LoadingListener listener) {
 mLoadingListener = listener;
}
3、対応する場合は、このインターフェースを呼び出す方法
MyClassのロードが完了したら、インターフェースを呼び出す方法です。
mLoadingListener.onFinished Loading(true)
二、カスタムモニターの使用:
1、MyClassの実例に傍受インターフェースの方法を実現する

mMyClass.setLoadingListener(new MyClass.LoadingListener() {
   @Override
   public void onFinishedLoading(boolean success) {
   //       
  }
}
オンFinished Loading関数でカスタムロジックを実現すればいいです。
追加知識:android Activity Fragmentにフィードバックを設定する方法
この実現方法は簡単です。3ステップに分けて歩くことができます。
1.fragmentでインターフェースを定義する
2.activityの定義において、このインターフェースを実現する。
3.fragment内のonAttach方法でContectを対応するインターフェースに変えます。
コードは以下の通りです

public class AllFragment extends Fragment {

//......    
 

 @Override
 public void onAttach(Context context) {
  super.onAttach(context);
  mOnChangeTabListener = (OnChangeTabListener) context;
 }

 public interface OnChangeTabListener{
  void onChangeTab(String tag);
 }
}
activityの定義において、このインターフェースは以下の通り実現されます。

public class SearchActivity extends AppCompactActivity implements AllFragment.OnChangeTabListener {

 //    
 @Override
 public void onChangeTab(String tag) {
  if ("  ".equals(tag)){
   mViewPager.setCurrentItem(1);
  }else {
   mViewPager.setCurrentItem(2);
  }
 }
}

以上のAndroidはカスタムクラスの中でカスタムモニター方式を実現しました。つまり、小編集は皆さんに全部の内容を共有しました。参考にしてもらいたいです。どうぞよろしくお願いします。