package org.aisen.wen.ui.view.impl; import android.app.Activity; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.TextView; import org.aisen.wen.R; import org.aisen.wen.R2; import org.aisen.wen.base.Consts; import org.aisen.wen.ui.presenter.IContentPresenter; import org.aisen.wen.ui.view.IContentView; import butterknife.BindView; import butterknife.ButterKnife; /** * 控制4种基本视图的页面刷新 * * Created by wangdan on 16/9/30. */ public abstract class AContentView implements IContentView { private View mContentView; @BindView(R2.id.layoutLoading) View loadingLayout;// 加载中视图 @BindView(R2.id.layoutLoadFailed) View loadFailureLayout;// 加载失败视图 @BindView(R2.id.layoutContent) View contentLayout;// 内容视图 @BindView(R2.id.layoutEmpty) View emptyLayout;// 空视图 private Activity mContext; // 标志是否ContentView是否为空 private boolean contentEmpty = true; private IContentPresenter mPresenter; @Override public void bindView(View contentView, Bundle savedInstanceState) { ButterKnife.bind(this, contentView); } @Override public void bindEvent(View contentView, Bundle savedInstanceState) { if (loadFailureLayout != null) { View reloadView = loadFailureLayout.findViewById(R.id.layoutReload); if (reloadView != null) { reloadView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mPresenter != null) { mPresenter.requestData(); } } }); } } if (emptyLayout != null) { View reloadView = emptyLayout.findViewById(R.id.layoutReload); if (reloadView != null) { reloadView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { if (mPresenter != null) { mPresenter.requestData(); } } }); } } } @Override public View findViewById(int id) { return getContentView().findViewById(id); } @Override public boolean isContentEmpty() { return contentEmpty; } @Override public void setContentLayout(boolean empty) { this.contentEmpty = empty; } @Override public View getLoadingLayout() { return loadingLayout; } @Override public View getEmptyLayout() { return emptyLayout; } @Override public View getContentLayout() { return contentLayout; } @Override public View getFailureLayout() { return loadFailureLayout; } @Override public void setFailureHint(String hint) { if (getFailureLayout() == null) return; TextView txtLoadFailed = (TextView) getFailureLayout().findViewById(R.id.txtLoadFailed); if (txtLoadFailed != null) txtLoadFailed.setText(hint); } @Override public void setEmptyHind(String hint) { if (getEmptyLayout() == null) return; TextView txtLoadEmpty = (TextView) getFailureLayout().findViewById(R.id.txtLoadEmpty); if (txtLoadEmpty != null) txtLoadEmpty.setText(hint); } @Override public View getContentView() { return mContentView; } @Override public void setPresenter(IContentPresenter presenter) { mPresenter = presenter; } @Override public void onBridgeCreate(Bundle savedInstanceState) { if (savedInstanceState != null) { setContentLayout(savedInstanceState.getBoolean(Consts.KEY_PREFIX + ".AContentView_ContentEmpty", true)); } } @Override public View onBridgeCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { mContentView = inflater.inflate(setLayoutId(), null); return mContentView; } @Override public void onBridgeActivityCreate(Activity activity, Bundle savedInstanceState) { } @Override public void onBridgeStart() { } @Override public void onBridgeResume() { } @Override public void onBridgePause() { } @Override public void onBridgeStop() { } @Override public void onBridgeDestory() { } @Override public void onBridgeSaveInstanceState(Bundle outState) { outState.putBoolean(Consts.KEY_PREFIX + ".AContentView_ContentEmpty", isContentEmpty()); } @Override public Activity getBridgeContext() { return getViewContext(); } @Override public void setBridgeContext(Activity context) { setViewContext(context); } @Override public Activity getViewContext() { return mContext; } @Override public void setViewContext(Activity context) { this.mContext = context; } }