Androidはカスタムクラスでカスタマイズモニター方式を実現します。
モニターはAndroid開発の中で最もよく使われているものの一つと言えます。モニターを通して,対象の様々な変化イベントをモニターし,必要な処理を行うことができ,非常に有用であり,また使いやすい。実は、モニターはC++の中のコールバック関数に相当しています。条件を満たしたら、コールバックして実行します。
多くの場合、私達はカスタムコントロールクラスにおいても、いくつかの属性変化を実現するモニターが必要で、元のコントロールモニターと同じ機能を実現します。以下のいくつかのステップに分けて、カスタムモニターの実装と使用を説明します。
一、カスタムモニターの実現:
1、ロード完了モニターインターフェースを定義する
2、インターフェースを宣言し、モニターを設置する方法を実現する。
声明LoadingListenerインターフェース
privte LoadingListener m LoadingListener;
LoadingListenerの設定方法を提供します。
MyClassのロードが完了したら、インターフェースを呼び出す方法です。
mLoadingListener.onFinished Loading(true)
二、カスタムモニターの使用:
1、MyClassの実例に傍受インターフェースの方法を実現する
追加知識:android Activity Fragmentにフィードバックを設定する方法
この実現方法は簡単です。3ステップに分けて歩くことができます。
1.fragmentでインターフェースを定義する
2.activityの定義において、このインターフェースを実現する。
3.fragment内のonAttach方法でContectを対応するインターフェースに変えます。
コードは以下の通りです
多くの場合、私達はカスタムコントロールクラスにおいても、いくつかの属性変化を実現するモニターが必要で、元のコントロールモニターと同じ機能を実現します。以下のいくつかのステップに分けて、カスタムモニターの実装と使用を説明します。
一、カスタムモニターの実現:
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はカスタムクラスの中でカスタムモニター方式を実現しました。つまり、小編集は皆さんに全部の内容を共有しました。参考にしてもらいたいです。どうぞよろしくお願いします。