package com.gzsll.hupu.ui; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; import android.widget.TextView; import com.gzsll.hupu.R; import com.gzsll.hupu.injector.HasComponent; import com.gzsll.hupu.util.ResourceUtil; import com.gzsll.hupu.widget.ProgressBarCircularIndeterminate; import com.gzsll.hupu.widget.ProgressFragment; /** * Created by sll on 2016/3/9. */ public abstract class BaseFragment extends ProgressFragment { private TextView tvError, tvEmpty, tvLoading; private Button btnReload; public abstract void initInjector(); public abstract int initContentView(); /** * 得到Activity传进来的值 */ public abstract void getBundle(Bundle bundle); /** * 初始化控件 */ public abstract void initUI(View view); /** * 在监听器之前把数据准备好 */ public abstract void initData(); @Override public void onViewCreated(View view, Bundle savedInstanceState) { initInjector(); getBundle(getArguments()); initUI(view); initData(); super.onViewCreated(view, savedInstanceState); } @Override public View onCreateContentView(LayoutInflater inflater) { return inflater.inflate(initContentView(), null); } @Override public View onCreateContentErrorView(LayoutInflater inflater) { View error = inflater.inflate(R.layout.error_view_layout, null); tvError = (TextView) error.findViewById(R.id.tvError); error.findViewById(R.id.btnReload).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { onReloadClicked(); } }); return error; } @Override public View onCreateContentEmptyView(LayoutInflater inflater) { View empty = inflater.inflate(R.layout.empty_view_layout, null); tvEmpty = (TextView) empty.findViewById(R.id.tvEmpty); btnReload = (Button) empty.findViewById(R.id.btnReload); empty.findViewById(R.id.btnReload).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { onReloadClicked(); } }); return empty; } @Override public View onCreateProgressView(LayoutInflater inflater) { View loading = inflater.inflate(R.layout.loading_view_layout, null); tvLoading = (TextView) loading.findViewById(R.id.tvLoading); ProgressBarCircularIndeterminate progressBar = (ProgressBarCircularIndeterminate) loading.findViewById(R.id.progress_view); progressBar.setBackgroundColor(ResourceUtil.getThemeColor(getActivity())); return loading; } public void setErrorText(String text) { tvError.setText(text); } public void setErrorText(int textResId) { setErrorText(getString(textResId)); } public void setEmptyText(String text) { tvEmpty.setText(text); } public void setEmptyButtonVisible(int visible) { btnReload.setVisibility(visible); } public void setEmptyText(int textResId) { setEmptyText(getString(textResId)); } public void setLoadingText(String text) { tvLoading.setText(text); } public void setLoadingText(int textResId) { setLoadingText(getString(textResId)); } //Override this to reload public void onReloadClicked() { } @SuppressWarnings("unchecked") protected <C> C getComponent(Class<C> componentType) { return componentType.cast(((HasComponent<C>) getActivity()).getComponent()); } }