优雅解决加载dialog 动态设置文字出现空指针解决方案

头像 2019-09-0817:49:01 评论 276 ℃
   public static final long DIALOG_TIME = 100;

Dialog 中设置文字的方法

    public void setMessage(String text) {
        if (tv_message != null) {
            tv_message.setText(text);
            handler.removeCallbacksAndMessages(null);
        } else {
            Bundle bundle = new Bundle();
            bundle.putString("text", text);
            Message message = new Message();
            message.setData(bundle);
            message.what = MSG_SET_TEXT;
            handler.sendMessageDelayed(message, Constants.DIALOG_TIME);

        }

    }

常量值 随便写

  private static final int MSG_SET_TEXT = 1001;

核心逻辑

    Handler handler = new Handler() {
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            switch (msg.what) {
                case MSG_SET_TEXT:
                    Bundle data = msg.getData();
                    String text = "";
                    if (data != null) {
                        text = data.getString("text");
                    }
                    setMessage(text);
                    break;
            }
        }
    };

进来直接轮询  为空就发个100ms的延时消息 等待不为空就设置上 并且关闭轮询

  • 我的微信
  • 这是我的微信扫一扫
  • weinxin
  • 我的微信公众号
  • 我的微信公众号扫一扫
  • weinxin
头像
百度云盘1T空号
百度云盘2T空号

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: