tv_cz_10 = (TextView) findViewById(R.id.tv_cz_10); tv_cz_20 = (TextView) findViewById(R.id.tv_cz_20); tv_cz_30 = (TextView) findViewById(R.id.tv_cz_30); tv_cz_50 = (TextView) findViewById(R.id.tv_cz_50); tv_cz_10.setOnClickListener(this); tv_cz_20.setOnClickListener(this); tv_cz_30.setOnClickListener(this); tv_cz_50.setOnClickListener(this);
public abstract class BaseActivity extends FragmentActivity implements View.OnClickListener {
private SparseArray<View> mViews;
public abstract int getLayoutId();
public abstract void initViews();
public abstract void initListener();
public abstract void initData();
public abstract void processClick(View v);
public void onClick(View v) {
processClick(v);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
mViews = new SparseArray<>();
setContentView(getLayoutId());
initViews();
initListener();
initData();
}
/**
* 通过ID找到View
*/
public <E extends View> E findView(int viewId) {
E view = (E) mViews.get(viewId);
if (view == null) {
view = (E) findViewById(viewId);
mViews.put(viewId, view);
}
return view;
}
/**
* View设置OnClick事件
*/
public <E extends View> void setOnClick(E view){
view.setOnClickListener(this);
}
}
public class SearchActivity extends BaseActivity {
BannerController bannerController;
ShopController shopController;
private ImageView iv_zxing;
private TextView tv_sure;
@Override
public int getLayoutId() {
//这里用来获取Activity的layout
return R.layout.activity_search;
}
@Override
public void initViews() {
//这里用来初始化View
iv_zxing = findView(R.id.iv_zxing);
tv_sure = findView(R.id.tv_sure);
}
@Override
public void initListener() {
//这里用来初始化点击事件
setOnClick(iv_zxing);
setOnClick(tv_sure);
}
@Override
public void initData() {
//这里用来设置数据、获取数据、读取网络数据、这里所做的一切都可以在Controller实现
bannerController = new BannerController(getActivity());
shopController = new ShopController(getActivity());
initShop();
initBanner();
}
@Override
public void processClick(View v) {
//这里用来处理点击事件
switch (v.getId()) {
case R.id.iv_zxing:
break;
case R.id.tv_sure:
break;
}
}
private void initShop() {
}
private void initBanner() {
}
}
public <E extends View> E F(int viewId) {
E view = (E) mViews.get(viewId);
if (view == null) {
view = (E) findViewById(viewId);
mViews.put(viewId, view);
}
return view;
}
public <E extends View> void C(E view){
view.setOnClickListener(this);
}
//用起来也很帅哦
@Override
public void initViews() {
iv_zxing = F(R.id.iv_zxing);
tv_sure = F(R.id.tv_sure);
}
@Override
public void initListener() {
C(iv_zxing);
C(tv_sure);
}
public abstract class BaseFragment extends Fragment implements View.OnClickListener {
private boolean isVisible = false;
private boolean isInitView = false;
private boolean isFirstLoad = true;
public View convertView;
private SparseArray<View> mViews;
public abstract int getLayoutId();
public abstract void initViews();
public abstract void initListener();
public abstract void initData();
public abstract void processClick(View v);
@Override
public void onClick(View v) {
processClick(v);
}
@Override
public void setUserVisibleHint(boolean isVisibleToUser) {
super.setUserVisibleHint(isVisibleToUser);
if (isVisibleToUser) {
isVisible = true;
lazyLoad();
} else {
//设置已经不是可见的
isVisible = false;
}
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
mViews = new SparseArray<>();
convertView = inflater.inflate(getLayoutId(), container, false);
initViews();
isInitView = true;
lazyLoad();
return convertView;
}
//懒加载
private void lazyLoad() {
if (!isFirstLoad || !isVisible || !isInitView) {
//如果不是第一次加载、不是可见的、不是初始化View,则不加载数据
return;
}
//加载数据
initListener();
initData();
//设置已经不是第一次加载
isFirstLoad = false;
}
public <E extends View> E findView(int viewId) {
if (convertView != null) {
E view = (E) mViews.get(viewId);
if (view == null) {
view = (E) convertView.findViewById(viewId);
mViews.put(viewId, view);
}
return view;
}
return null;
}
public <E extends View> void setOnClick(E view){
view.setOnClickListener(this);
}
}
public class HomeFragment extends BaseFragment {
ShopController shopController;
private ImageView iv_speech;
private TextView tv_search;
@Override
public int getLayoutId() {
return R.layout.fragment_home;
}
@Override
public void initViews() {
iv_speech = findView(R.id.iv_speech);
tv_search = findView(R.id.tv_search);
}
@Override
public void initData() {
shopController = new ShopController(getActivity());
initShop();
}
@Override
public void initListener() {
setOnClick(iv_speech);
setOnClick(tv_search);
}
@Override
public void processClick(View v) {
switch (v.getId()) {
case R.id.iv_speech:
break;
case R.id.tv_search:
break;
}
}
private void initShop() {
}
}
//设置缓存页面 viewPager.setOffscreenPageLimit(5);
public abstract class BaseApplication extends Application {
public abstract void initConfigs();
@Override
public void onCreate() {
super.onCreate();
initConfigs();
}
}
机械节能产品生产企业官网模板...
大气智能家居家具装修装饰类企业通用网站模板...
礼品公司网站模板
宽屏简约大气婚纱摄影影楼模板...
蓝白WAP手机综合医院类整站源码(独立后台)...苏ICP备2024110244号-2 苏公网安备32050702011978号 增值电信业务经营许可证编号:苏B2-20251499 | Copyright 2018 - 2025 源码网商城 (www.ymwmall.com) 版权所有