您的位置:首页 > 其它

BaseFragment基类封装

2017-07-04 10:10 309 查看
**
* Fragment基类
* Created by guo on 2017/6/19.
*/

public  abstract class BaseFragment extends Fragment implements View.OnClickListener{
/**
* 设置onCreateView
* @return R.layout.xxx
*/
protected abstract int getLayoutId();

/**
* 初始化View
*/
protected abstract void initView(View view);

/**
* add Listener
*/
protected abstract void setListener();

/**
* view点击
* @param v
*/
public abstract void widgetClick(View v);

private View view;
private Context context;

/**
* fragment和activity被关联时调用
*
*/
@Override
public void onAttach(Context context) {
super.onAttach(context);
this.context=context;
}

/**
* fragment和activity去关联时调用。
*/
@Override
public void onDetach() {
super.onDetach();
this.context=null;
}

/**
*
*创建fragment的UI被初始化时调用
*/
@Override
public View onCreateView(LayoutInflater inflater,  ViewGroup container, Bundle savedInstanceState) {
view=inflater.inflate(getLayoutId(),null);
initView(view);
setListener();
return view;
}

@Override
public void onClick(View v) {
if (fastClick())
widgetClick(v);
}
private long lastClick = 0;
private boolean fastClick() {
if (System.currentTimeMillis() - lastClick <= 1000) {
return false;
}
lastClick = System.currentTimeMillis();
return true;
}

/**
*findViewById()
* @param id
* @param <T>
* @return
*/
protected  <T extends View> T $findViewById(int id) {
return (T) view.findViewById(id);
}
/**
* Toast
*/

protected void $toast(CharSequence msg) {
Toast.makeText(context, msg, Toast.LENGTH_SHORT).show();
}
/**
* 网络是否可用
*
* @param context
* @return
*/
protected  boolean isNetworkAvailable(Context context) {
ConnectivityManager mgr = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
NetworkInfo[] info = mgr.getAllNetworkInfo();
if (info != null) {
for (int i = 0; i < info.length; i++) {
if (info[i].getState() == NetworkInfo.State.CONNECTED) {
return true;
}
}
}
return false;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: