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);
        }
    }
    

      

  • 相关阅读:
    简单的Servlet结合Jsp实现请求和响应以及对doGet和doPost的浅析
    My1stServlet
    Myeclipse发布第一个jsp页面及web project部署到tomcat上的几种方法
    java中循环的不同终止方式
    Mybatis学习笔记
    python 进程间的数据交互
    python 进程
    python 队列
    python 多线程
    python paramiko 向linux执行命令和发送接收文件
  • 原文地址:https://www.cnblogs.com/alanfang/p/6885235.html
Copyright © 2011-2022 走看看