您的位置:首页 > 移动开发 > Android开发

android 之 Baseactivity 和BaseFragment

2016-08-30 15:30 393 查看
baseActivity

/**
* @author 作者名 易皇星
* @email 邮箱名 15095887072@163.com
* @time 2016-5-14 2016-05
* @TODO 缘分是本书,翻得不经意会错过,读得太认真会流泪!
*/

public abstract class BaseActivity extends FragmentActivity implements OnClickListener{
protected final SparseArray<View> mViews = new SparseArray<View>();

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(initLayout(savedInstanceState));

/**
* 加载视图
*/
initLayout(savedInstanceState);
/**
* 初始化控件
*/
initView(savedInstanceState);
/**
*
* 初始化数据
*/
initData(savedInstanceState);
/**
* 添加事件监听对象
*/
initListener(savedInstanceState);

}

/**
* 再也不需要每次都findViewById
*
* @param resId    控件的id
* @return
*/
protected <V extends View> V getView(int resId) {
return bindView(resId);

}

private <V extends View> V bindView(int resId) {
View view = mViews.get(resId);
if (view == null) {
view = findViewById(resId);
mViews.put(resId, view);
}
return (V) view;

}

protected abstract int initLayout(Bundle savedInstanceState);

protected abstract void initView(Bundle savedInstanceState);

protected abstract void initData(Bundle savedInstanceState);

protected abstract void initListener(Bundle savedInstanceState);
/**
*
* @param view 事件监听
*/
protected abstract void widgetClick(View view);

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if(fastClick()){
widgetClick(v);
}
}

private long lastClick =0;
/**
*
* @return 控制短时间内重复点击事件----看个人爱好而定
*/
private boolean fastClick(){
if(System.currentTimeMillis()-lastClick<=500){
return false;
}

lastClick=System.currentTimeMillis();
return true;

}
}


2.baseFragment

/**
* @author 作者名 易皇星
* @email  邮箱名 15095887072@163.com
* @time   2016-5-14 2016-05
* @TODO 缘分是本书,翻得不经意会错过,读得太认真会流泪!
*/

public abstract class BaseFragment extends Fragment implements OnClickListener{

protected Context mcontext;

private static final String tag = "BaseFragment";

protected View mRootVie;

protected final SparseArray<View> mViews = new SparseArray<View>();

@Override
public void onCreate( Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
mcontext=getActivity();

}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,  Bundle savedInstanceState) {
if (mRootView == null) {
mRootView = inflater.inflate(getLayoutId(), container, false);
onViewInflated();

setListener();

}
return mRootView;
}
/**
*
*    用get代替findViewById();
* @param resId
* @return
*/

protected <V extends View> V get(int resId){
return bindView(resId);

}

private <V extends View > V bindView(int resId){
View view = mViews.get(resId);
if(view==null){
view = mRootView.findViewById(resId);
mViews.put(resId, view);
}
return (V) view;

}

/**
*   加载布局
* @return
*/

protected abstract int getLayoutId();

/**
* 初始化控件
*/

protected abstract void onViewInflated();
/**
* 添加事件监听对象
*/
protected abstract void setListener();

/**
*
* @param view 事件监听
*/
protected abstract void widgetClick(View view);

@Override
public void onClick(View v) {
// TODO Auto-generated method stub
if (fastClick()) {
widgetClick(v);
}

}

private long lastClick = 0;

/**
*
* @return 控制短时间内重复点击事件----看个人爱好而定
*/
private boolean fastClick() {
if (System.currentTimeMillis() - lastClick <= 500) {
return false;
}

lastClick = System.currentTimeMillis();
return true;

}

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