package com.txx.androidpaginglibrary.listwrap.loaderrorview;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.RelativeLayout;
import android.widget.TextView;
import android.widget.Toast;
import com.nispok.snackbar.Snackbar;
import com.nispok.snackbar.SnackbarManager;
import com.nispok.snackbar.listeners.ActionClickListener;
import com.txx.androidpaginglibrary.R;
/**
* 1.该列表本来无数据
* 2.该列表有数据,但是第一页就加载失败
* 3.该列表有数据,加载下一页数据时,加载失败
*/
public class LoadListDataErrorViewWrap {
public interface LoadListDataErrorViewWrapDelegate{
public void addLoadFirstPageDataFailureView(View errorView);
public void addFirstPageReloadingView(View loadingView);
public void addEmptyView(View emptyView);
}
private LoadListDataErrorViewWrapDelegate loadListDataErrorViewWrapDelegate;
public LoadListDataErrorViewWrap(LoadListDataErrorViewWrapDelegate loadListDataErrorViewWrapDelegate){
this.loadListDataErrorViewWrapDelegate = loadListDataErrorViewWrapDelegate;
}
private View netErroView;
private View loadingView;
private View emptyView;
public void setLoadFirstPageDataFailureView(Context context, LayoutInflater inflater) {
if(netErroView == null){
netErroView = inflater.inflate(R.layout.common_paging_load_error_view, null);
}
if(loadingView == null){
loadingView = inflater.inflate(R.layout.common_paging_load_view, null);
}
// RelativeLayout reloadBtn = (RelativeLayout) netErroView.findViewById(R.id.reload_btn);
// reloadBtn.setOnClickListener(new OnClickListener() {
// @Override
// public void onClick(View v) {
// loadListDataErrorViewWrapDelegate.addFirstPageReloadingView(loadingView);
// }
// });
loadListDataErrorViewWrapDelegate.addLoadFirstPageDataFailureView(netErroView);
SnackbarManager.show(
Snackbar.with(context) // context
.text("网络连接失败") // text to display
.colorResource(R.color.app_black_color_transparent)
.actionLabel("重新加载") // action button label
.duration(Snackbar.SnackbarDuration.LENGTH_INDEFINITE)
.dismissOnActionClicked(true)
.actionListener(new ActionClickListener() {
@Override
public void onActionClicked(Snackbar snackbar) {
loadListDataErrorViewWrapDelegate.addFirstPageReloadingView(loadingView);
}
})
);// action button's ActionClickListener
// Toast.makeText(context, context.getResources().getString(R.string.common_paging_network_failure_tip), Toast.LENGTH_SHORT).show();
}
public void setLoadDataResponseEmptyView(LayoutInflater inflater, String tip) {
if(emptyView == null){
emptyView = inflater.inflate(R.layout.common_paging_load_empty_view, null);
}
TextView textview = (TextView) emptyView.findViewById(R.id.empty_tip_text);
textview.setText(tip);
loadListDataErrorViewWrapDelegate.addEmptyView(emptyView);
}
}