ErrorView.java 3.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798
  1. package com.edufound.mobile.view;
  2. import android.content.Context;
  3. import android.graphics.Color;
  4. import android.view.LayoutInflater;
  5. import android.view.View;
  6. import android.widget.FrameLayout;
  7. import android.widget.TextView;
  8. import com.edufound.mobile.R;
  9. import com.edufound.mobile.base.BaseView;
  10. import com.edufound.mobile.util.ToastUtil;
  11. public class ErrorView extends FrameLayout {
  12. BaseView mView;
  13. View LayoutView;
  14. BtnClickListener mListener;
  15. public ErrorView(BaseView view) {
  16. super(view.getActivity());
  17. initView(view.getActivity());
  18. mView = view;
  19. }
  20. void initView(Context context) {
  21. LayoutView = LayoutInflater.from(context).inflate(R.layout.window_disconnect_network, null);
  22. final TextView release = LayoutView.findViewById(R.id.window_disconnect_network_relase);
  23. final TextView exit = LayoutView.findViewById(R.id.window_disconnect_network_exit);
  24. release.setOnFocusChangeListener(errorViewFocus);
  25. exit.setOnFocusChangeListener(errorViewFocus);
  26. release.setOnClickListener(errorViewClick);
  27. exit.setOnClickListener(errorViewClick);
  28. addView(LayoutView);
  29. release.postDelayed(new Runnable() {
  30. @Override
  31. public void run() {
  32. release.requestFocus();
  33. }
  34. }, 500);
  35. }
  36. public void setViewBgColor(int color) {
  37. LayoutView.setBackgroundColor(color);
  38. }
  39. public void setBtnClickListener(BtnClickListener listener) {
  40. mListener = listener;
  41. }
  42. View.OnFocusChangeListener errorViewFocus = new View.OnFocusChangeListener() {
  43. @Override
  44. public void onFocusChange(View v, boolean hasFocus) {
  45. switch (v.getId()) {
  46. case R.id.window_disconnect_network_relase:
  47. case R.id.window_disconnect_network_exit:
  48. if (hasFocus) {
  49. v.setBackgroundResource(R.drawable.window_disconnect_network_text_bgfocus);
  50. ((TextView) v).setTextColor(Color.WHITE);
  51. } else {
  52. v.setBackgroundResource(R.drawable.window_disconnect_network_text_bg);
  53. ((TextView) v).setTextColor(Color.parseColor("#ff767676"));
  54. }
  55. break;
  56. }
  57. }
  58. };
  59. //修改为通过发广播的方式,试试能不能退出什么的
  60. View.OnClickListener errorViewClick = new View.OnClickListener() {
  61. @Override
  62. public void onClick(View v) {
  63. switch (v.getId()) {
  64. case R.id.window_disconnect_network_relase:
  65. if (mListener == null) {
  66. ToastUtil.showToast("未设置事件");
  67. return;
  68. }
  69. mListener.clickRelase();
  70. break;
  71. case R.id.window_disconnect_network_exit:
  72. if (mListener == null) {
  73. ToastUtil.showToast("未设置事件");
  74. return;
  75. }
  76. mListener.clickExit();
  77. break;
  78. }
  79. }
  80. };
  81. public interface BtnClickListener {
  82. void clickRelase();
  83. void clickExit();
  84. }
  85. }