zoukankan      html  css  js  c++  java
  • Android开发之《实现类似Toast可以自动消失的提示栏Tip》

    import java.util.Timer;
    import java.util.TimerTask;
    
    import android.app.Activity;
    import android.content.Context;
    import android.view.View;
    import android.widget.TextView;
    
    public class TipManager {
        private static final String TAG = TipManager.class.getSimpleName();
    
        private Context mContext;
        private TextView mView;
    
        private Timer timer = null;
        private TimerTask cancelTask = null;
    
        public TipManager(Context context, TextView view) {
            mContext = context;
            mView = view;
        }
    
        public void init() {
            timer = new Timer();
        }
    
        public void release() {
            if (cancelTask != null) {
                cancelTask.cancel();
                cancelTask = null;
            }
    
            if (timer != null) {
                timer.cancel();
                timer = null;
            }
        }
    
        public void show(CharSequence text) {
            // cancel hide task
            if (cancelTask != null) {
                cancelTask.cancel();
                cancelTask = null;
                timer.purge();
            }
    
            showUI(text);
        }
    
        public void show(CharSequence text, long duration) {
            showUI(text);
    
            // cancel hide task
            if (cancelTask != null) {
                cancelTask.cancel();
                cancelTask = null;
                timer.purge();
            }
    
            cancelTask = new TimerTask() {
                @Override
                public void run() {
                    hideUI("default");
                }
            };
    
            timer.schedule(cancelTask, duration);
        }
    
        private void showUI(final CharSequence text) {
            ((Activity) mContext).runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    doShow(text);
                }
            });
        }
    
        private void hideUI(final CharSequence text) {
            ((Activity) mContext).runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    doHide(text);
                }
            });
        }
    
        private void doShow(CharSequence text) {
            mView.setText(text);
            mView.setVisibility(View.VISIBLE);
        }
    
        private void doHide(CharSequence text) {
            mView.setText(text);
            mView.setVisibility(View.INVISIBLE);
        }
    }
    

      

  • 相关阅读:
    《sql必知必会》笔记
    HTTP抓包与调试(Firefox插件)
    软件测试方法和技术实践(学习笔记)
    java基础(一章)
    java基础(二章)
    final关键字(最终的)
    算术运算符与控制台输入
    eclipse自动补全的设置
    Java关于Properties用法的总结(一)
    使用Struts2标签遍历集合
  • 原文地址:https://www.cnblogs.com/alanfang/p/6885235.html
Copyright © 2011-2022 走看看