DataLoadView.java 2.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. package com.sk.weichat.view;
  2. import android.content.Context;
  3. import android.util.AttributeSet;
  4. import android.view.LayoutInflater;
  5. import android.view.View;
  6. import android.widget.LinearLayout;
  7. import android.widget.ProgressBar;
  8. import android.widget.TextView;
  9. import com.sk.weichat.R;
  10. public class DataLoadView extends LinearLayout {
  11. public DataLoadView(Context context) {
  12. super(context);
  13. initView();
  14. }
  15. public DataLoadView(Context context, AttributeSet attrs) {
  16. super(context, attrs);
  17. initView();
  18. }
  19. public DataLoadView(Context context, AttributeSet attrs, int defStyle) {
  20. super(context, attrs, defStyle);
  21. initView();
  22. }
  23. private ProgressBar mLoadProgressBar;
  24. private TextView mLoadFailedTv;
  25. private static final int STATUS_NONE = 0;
  26. private static final int STATUS_LOADING = 1;
  27. private static final int STATUS_FIALED = 2;
  28. private static final int STATUS_ERROR= 3;
  29. private int status;
  30. private void initView() {
  31. LayoutInflater.from(getContext()).inflate(R.layout.layout_data_load, this);
  32. mLoadProgressBar = (ProgressBar) findViewById(R.id.load_progress_bar);
  33. mLoadFailedTv = (TextView) findViewById(R.id.load_failed_tv);
  34. status = STATUS_NONE;
  35. mLoadProgressBar.setVisibility(View.GONE);
  36. mLoadFailedTv.setVisibility(View.GONE);
  37. mLoadFailedTv.setOnClickListener(new OnClickListener() {
  38. @Override
  39. public void onClick(View v) {
  40. if (status != STATUS_FIALED) {
  41. return;
  42. }
  43. if (mLoadingEvent != null) {
  44. showLoading();
  45. mLoadingEvent.load();
  46. }
  47. }
  48. });
  49. }
  50. public static interface LoadingEvent {
  51. void load();
  52. }
  53. private LoadingEvent mLoadingEvent;
  54. public void setLoadingEvent(LoadingEvent loadingEvent) {
  55. mLoadingEvent = loadingEvent;
  56. }
  57. public void showLoading() {
  58. status = STATUS_LOADING;
  59. mLoadProgressBar.setVisibility(View.VISIBLE);
  60. mLoadFailedTv.setVisibility(View.GONE);
  61. }
  62. public void showSuccess() {
  63. status = STATUS_NONE;
  64. setVisibility(View.GONE);
  65. mLoadProgressBar.setVisibility(View.GONE);
  66. mLoadFailedTv.setVisibility(View.GONE);
  67. }
  68. public void showFailed() {
  69. status = STATUS_FIALED;
  70. mLoadProgressBar.setVisibility(View.GONE);
  71. mLoadFailedTv.setVisibility(View.VISIBLE);
  72. }
  73. public void showError(String errorMsg){
  74. status = STATUS_ERROR;
  75. mLoadProgressBar.setVisibility(View.GONE);
  76. mLoadFailedTv.setVisibility(View.VISIBLE);
  77. mLoadFailedTv.setText(errorMsg);
  78. }
  79. }