package com.ab.fragment;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.view.View;
import android.view.animation.Animation;
import com.ab.util.AbAnimationUtil;
import com.ab.util.AbDialogUtil;
/**
* © 2012 amsoft.cn
* 名称:AbDialogFragment.java
* 描述:弹出框的父类
*
* @author 还如一梦中
* @version v1.0
* @date:2014-07-30 下午16:00:52
*/
public class AbDialogFragment extends DialogFragment {
private View mIndeterminateView = null;
public String mMessage;
private DialogInterface.OnCancelListener mOnCancelListener = null;
private DialogInterface.OnDismissListener mOnDismissListener = null;
private AbDialogOnLoadListener mAbDialogOnLoadListener = null;
public AbDialogFragment() {
super();
}
@Override
public void onCancel(DialogInterface dialog) {
// 用户中断
if (mOnCancelListener != null) {
mOnCancelListener.onCancel(dialog);
}
super.onCancel(dialog);
}
@Override
public void onDismiss(DialogInterface dialog) {
// 用户隐藏
if (mOnDismissListener != null) {
mOnDismissListener.onDismiss(dialog);
}
super.onDismiss(dialog);
}
public DialogInterface.OnCancelListener getOnCancelListener() {
return mOnCancelListener;
}
public void setOnCancelListener(
DialogInterface.OnCancelListener onCancelListener) {
this.mOnCancelListener = onCancelListener;
}
public DialogInterface.OnDismissListener getOnDismissListener() {
return mOnDismissListener;
}
public void setOnDismissListener(
DialogInterface.OnDismissListener onDismissListener) {
this.mOnDismissListener = onDismissListener;
}
/**
* 加载调用
*/
public void load(View v){
if(mAbDialogOnLoadListener!=null){
mAbDialogOnLoadListener.onLoad();
}
mIndeterminateView = v;
AbAnimationUtil.playRotateAnimation(mIndeterminateView, 300, Animation.INFINITE,
Animation.RESTART);
}
/**
* 加载成功调用
*/
public void loadFinish(){
//停止动画
loadStop();
AbDialogUtil.removeDialog(this.getActivity());
}
/**
* 加载结束
*/
public void loadStop(){
//停止动画
mIndeterminateView.postDelayed(new Runnable(){
@Override
public void run() {
mIndeterminateView.clearAnimation();
}
}, 200);
}
public AbDialogOnLoadListener getAbDialogOnLoadListener() {
return mAbDialogOnLoadListener;
}
public void setAbDialogOnLoadListener(
AbDialogOnLoadListener abDialogOnLoadListener) {
this.mAbDialogOnLoadListener = abDialogOnLoadListener;
}
public String getMessage() {
return mMessage;
}
public void setMessage(String mMessage) {
this.mMessage = mMessage;
}
/**
* 加载事件的接口.
*/
public interface AbDialogOnLoadListener {
/**
* 加载
*/
public void onLoad();
}
}